这篇文章主要介绍“PyTorch中expand()如何使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Pytorch中expand()如何使用”文章能帮助大家解决问题。Pytorch expand
这篇文章主要介绍“PyTorch中expand()如何使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Pytorch中expand()如何使用”文章能帮助大家解决问题。
有两点需要注意,无论是 expand() 还是 expand_as():
只能在第0维扩展一个维数,比如原来是是(1,3,4)==》(2,1,3,4),而在其他维度扩展不可以(1,3,4)==》(1,2,3,4)【错误】
如果不增加维数,只是增加维度,要增加的原维度必须是1才可以在该维度增加维度,其他值均不可以
import torch#1x = torch.randn(2, 1, 1)#为1可以扩展为3和4x = x.expand(2, 3, 4)print('x :', x.size())>>> x : torch.Size([2, 3, 4])#2#扩展一个新的维度必须在最前面,否则会报错x = x.expand(2, 3, 4, 6)>>> RuntimeError: The expanded size of the tensor (3) must match the existing size (2) at non-singleton dimension 1.x = x.expand(6, 2, 3, 4)>>> x : torch.Size([6, 2, 3, 4])#3#某一个维度为-1表示不改变该维度的大小x = x.expand(6, -1, -1, -1)>>> x : torch.Size([6, 2, 1, 1])
import torch#1x = torch.randn(2, 1, 1)#原维度为1可以扩展为其他维度y = torch.randn(2, 3, 3)x = x.expand_as(y)print('x :', x.size())>>> x : torch.Size([2, 3, 3])#2x = torch.randn(2, 2, 2)#原维度为其他不是1的值不可以扩展为其他维度y = torch.randn(2, 3, 4)x = x.expand_as(y)print('x :', x.size())>>> RuntimeError: The expanded size of the tensor (4) must match the existing size (2) at non-singleton dimension 2. Target sizes: [2, 3, 4].
单个维度扩大为更大的尺寸。
tensor也可以扩大为更高维,新增加的维度将附在前面。
扩大tensor不需要分配新内存,只是仅仅新建一个tensor的视图,其中通过将stride设为0,一维将会扩展位更高维。
任何一个一维的在不分配新内存情况下可扩展为任意的数值。
x自身不会改变,因此需要将结果重新赋值。
关于“Pytorch中expand()如何使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网精选频道,小编每天都会为大家更新不同的知识点。
--结束END--
本文标题: Pytorch中expand()如何使用
本文链接: https://www.lsjlt.com/news/343652.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-16
2024-05-16
2024-05-16
2024-05-16
2024-05-16
2024-05-16
2024-05-16
2024-05-16
2024-05-16
2024-05-16
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0