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得到的仅仅是一个视图,不创建新元素,不占据新空间。