返回一个新张量,它的数据与 self 张量相同,但 shape 不同。
返回的张量共享相同的数据,并且必须有相同数量的元素,但是可能有不同的 size。对于要查看的张量,新的视图大小必须与其原始大小和步幅相匹配。
例如每个新的视图维度必须要么是原始维度的子空间,要么只跨原始维度 d,d+1,...,d+k 满足以下类似于连续的条件
stride[i]=stride[i+1]×size[i+1]
否则,在查看张量之前需要调用contiguous()。参见: reshape() 如果形状兼容,则返回视图,否则返回副本(等效于调用contiguous())。
参数:shape(torch.Size or int)-所需的大小
>>> x = torch.randn(4, 4)
>>> x.size()
torch.Size([4, 4]) # x 为4*4的张量
>>> y = x.view(16)
>>> y.size()
torch.Size([16]) # y为1*16的张量
>>> z = x.view(-1, 8) # -1的大小是从其他维度推断出来的
>>> z.size()
torch.Size([2, 8]) # z为2*8的张量
"""
输出:
tensor([[-0.6413, 1.0150, 1.1099, 0.1736],
[ 0.6944, 1.1347, 0.3699, -0.1459],
[ 0.6396, 1.0228, -1.3372, -0.8312],
[ 0.1817, 1.3849, 0.0417, -0.1628]]) torch.Size([4, 4])
tensor([-0.6413, 1.0150, 1.1099, 0.1736, 0.6944, 1.1347, 0.3699, -0.1459,
0.6396, 1.0228, -1.3372, -0.8312, 0.1817, 1.3849, 0.0417, -0.1628]) torch.Size([16])
tensor([[-0.6413, 1.0150, 1.1099, 0.1736, 0.6944, 1.1347, 0.3699, -0.1459],
[ 0.6396, 1.0228, -1.3372, -0.8312, 0.1817, 1.3849, 0.0417, -0.1628]]) torch.Size([2, 8])
"""