x = torch.Tensor([[1], [2]])
print(x.size())
print(x)
y=x.expand(2,10)
print(x.size())
y.size()
#输出
torch.Size([2, 1])
tensor([[1.],
[2.]])
torch.Size([2, 1])
torch.Size([2, 10])
尝试修改x的第一个元素,并打印查看效果
x[0]=-1
x
#输出
tensor([[-1.],
[ 2.]])
随后查看y元素(由x经过expand得到的tensor)
y
#输出
tensor([[-1., -1., -1., -1., -1., -1., -1., -1., -1., -1.],
[ 2., 2., 2., 2., 2., 2., 2., 2., 2., 2.]])
通过上述实验,可以发现,经过expand得到的tensor会受原tensor的影响,由某元素expand得到的新元素的值始终与原来的元素的值保持一致,expand得到的仅仅是一个视图,不创建新元素,不占据新空间。

本文通过实例演示了 PyTorch 中 tensor 的 expand 方法使用过程,详细解释了 expand 操作如何创建 tensor 的视图而非复制数据,以及这种操作如何影响原始 tensor 和其扩展后的 tensor。
函数解析&spm=1001.2101.3001.5002&articleId=123820421&d=1&t=3&u=e7a088aba7924d2695e7b742621a2931)
1270

被折叠的 条评论
为什么被折叠?



