当前位置: 首页 > news >正文

帮人做钓鱼网站的人网络推广培训职业学校

帮人做钓鱼网站的人,网络推广培训职业学校,做微信公众号页面的网站,小程序商城开发在深度学习中#xff0c;张量的维度变换是很重要的操作。在pytorch中#xff0c;有四个用于维度变换的函数#xff0c;view, reshape, transpose, permute。其中view, reshape都用于改变张量的形状#xff0c;transpose, permute都用于重新排列张量的维度#xff0c;但它们…在深度学习中张量的维度变换是很重要的操作。在pytorch中有四个用于维度变换的函数view, reshape, transpose, permute。其中view, reshape都用于改变张量的形状transpose, permute都用于重新排列张量的维度但它们的功能和使用场景有所不同下面将进行详细介绍并给出测试验证代码经过全面的了解我们才能知道如何正确的使用这四个函数。 这里写目录标题 1. torch.Tensor.view2. torch.reshape3. torch.transpose4. torch.permute5. torch.transpose与torch.permute的性质与原理 1. torch.Tensor.view 文档Doc view 方法返回一个新的张量具有与原始张量相同的数据但改变了形状。所以view返回的是原始数据的一个新尺寸的视图这也就是为什么叫做view。import torch # 创建一个2x6的张量 x torch.tensor([[1, 2, 3, 4, 5, 6],[7, 8, 9, 10, 11, 12]]) # 将其调整为3x4的形状 y x.view(3, 4) print(x shape: , x.shape) print(y shape: , y.shape) # 判断新旧张量是否数据是相同的 print(x.data_ptr() y.data_ptr())输出x shape: torch.Size([2, 6]) y shape: torch.Size([3, 4]) Trueview 要求原始张量是连续的即在内存中是按顺序存储的否则会抛出错误。import torch # 创建一个2x6的张量 x torch.tensor([[1, 2, 3, 4, 5, 6],[7, 8, 9, 10, 11, 12]]) # 将向量转置此时x不再是连续的 x x.T # 在不连续的张量上进行view将会报错 y x.view(3, 4)报错输出RuntimeError: view size is not compatible with input tensors size and stride (at least one dimension spans across two contiguous subspaces). Use .reshape(...) instead.如果张量不是连续的可以使用 contiguous 方法先将其转换为连续的。 2. torch.reshape 文档Doc reshape不要求原始张量是连续的如果原始张量是连续的那么实现的功能和view一样如果原始张量不是连续的那么reshape就是tensor.contigous().view()也就是会重新开辟一块内存空间拷贝原始张量使其连续在连续张量上view 和 reshape 性能相同。在非连续张量上reshape 可能会稍慢一些因为它可能需要创建新的连续张量。import torch # 创建一个2x6的张量 x torch.tensor([[1, 2, 3, 4, 5, 6],[7, 8, 9, 10, 11, 12]]) # 将向量转置此时x不再是连续的 x x.T # 在不连续的张量上可以进行reshape y x.reshape(3, 4) print(x shape: , x.shape) print(y shape: , y.shape) # 但reshape返回的是新的内存中的张量 print(x.data_ptr() y.data_ptr())输出x shape: torch.Size([6, 2]) y shape: torch.Size([3, 4]) False3. torch.transpose Doc 功能仅用于交换两个维度。它接受两个维度参数分别表示要交换的维度。不改变数据不会改变数据本身只是改变数据的视图即不复制数据。生成的新张量也通常不是连续的。它只是交换两个维度的顺序不改变数据在内存中的实际存储顺序。对原始张量是不是连续的没有要求import torch # 创建一个3x4的张量 x torch.tensor([[1, 2, 3, 4],[5, 6, 7, 8],[9, 10, 11, 12]]) print(x.is_contiguous()) # 交换第一个和第二个维度 y torch.transpose(x, 0, 1) print(y.is_contiguous()) print(x shape: , x.shape) print(y shape: , y.shape) print(x.data_ptr() y.data_ptr())输出True False x shape: torch.Size([3, 4]) y shape: torch.Size([4, 3]) True4. torch.permute Doc 可以重新排列任意数量的维度适用于复杂的维度变换。接受一个shape元组作为参数不改变数据不会改变数据本身只是改变数据的视图即不复制数据生成的新张量通常不是连续的。因为它仅改变维度顺序不改变数据在内存中的实际顺序。对原始张量是不是连续的没有要求 import torch# 创建一个3x4x5的张量x torch.randn(3, 4, 5)# 将其第一个和第二个维度交换y torch.permute(x, (1, 0, 2))print(y.is_contiguous())print(x.data_ptr() y.data_ptr())print(y.size()) # 输出torch.Size([4, 3, 5])输出False True torch.Size([4, 3, 5])5. torch.transpose与torch.permute的性质与原理 这两者的功能和各方面的性质基本是相同的只是一个只能交换两个维度一个能进行更复杂的维度排列。他们的原理是transpose 和 permute 通过改变张量的 strides步幅来重新排列维度。strides 定义了在内存中沿着每个维度移动的步长。它们不改变张量的数据只是改变了访问数据的方式。因此这些操作可以应用于任何张量无论它们是否连续。
http://www.w-s-a.com/news/728865/

相关文章:

  • 淘宝客有必须做网站吗网站开发的形式有( )
  • 网站建设:上海珍岛网页版qq空间登录
  • 网站服务器ipteahouse wordpress主题
  • 深州市住房保障和城乡建设局网站做网站公司叫什么
  • 织梦网站转跳手机站注册公司代理记账费用
  • wordpress建站Pdf亚马逊aws在线观看
  • 做网站的外包公司有哪些WordPress调用json数据
  • 做网站网站怎么赚钱网站的建设及维护报告
  • 可以做效果图的网站东莞网站优化什么方法
  • 网站和软件的区别怎么做招生网站
  • 雄安免费网站建设电话如何做网站推广 求指点
  • 十大免费cad网站入口软件北京做网站建设价格
  • 建设一个公司网站要具备什么网页制作的专业
  • 东莞seo建站排名全包网站
  • 网站建设的基本步骤有哪些软件商店下载官方
  • 网站建设开发报告论文hao123上网从这里开始官方
  • 阿里云建网站费用徐州房产网
  • 网站统计分析平台做企业礼品的网站
  • 做可视化图表的网站wordpress批量导入tag
  • txt怎么做网站网站的链接结构包括
  • 适合平面设计师的网站网络营销专员的就业前景
  • 好订单网服装加工接单谷歌seo网站推广怎么做
  • seo泛站群外贸网站建设团队
  • 网站免费维护建立网站国家城乡建设部投诉网站
  • 企业网站必须备案吗wordpress导入数据库依然无法链接
  • 浅谈高校网站群的建设网站不支持m.域名
  • 和平网站建设公司做实验教学视频的网站
  • 音乐网站源码带手机版WordPress菜单调用不出
  • 昆明网站设计都需要设计什么网络推广岗位职责和任职要求
  • 国外公司网站模板网站建设公司选择意见书