import torch
# expand 将tensor按照某一个维度扩大或者将tensor整体扩大
# expand 不会额外分配空间,只是原tensor的一个视图
x = torch.tensor([[1], [2], [3]])
print(x.size())
"""
torch.Size([3, 1])
"""
y = x.expand(3, 4)
print(y)
"""
tensor([[ 1, 1, 1, 1],
[ 2, 2, 2, 2],
[ 3, 3, 3, 3]])
"""
z = x.expand(-1, 4)
# -1 代表维度不变
print(z)
"""
tensor([[ 1, 1, 1, 1],
[ 2, 2, 2, 2],
[ 3, 3, 3, 3]])
"""
t = x.expand(3, 3, 1)
print(t)
"""
tensor([[[1],
[2],
[3]],
[[1],
[2],
[3]],
[[1],
[2],
[3]]])
"""
# expand 不会额外分配空间,只是原tensor的一个视图,随着原来tensor的改变而改变
x[1][0] = 4
print(y)
"""
tensor([[1, 1, 1, 1],
[4, 4, 4, 4],
[3, 3, 3, 3]])
"""