Python中的View函数的用法
简单来说就是改变tensor的维度
import torch
a = torch.randn(3, 4)
print(a.shape)
print(a)
'''
>>>torch.Size([3, 4])
>>>tensor([[-0.7380, 0.6280, 0.2142, -0.5481],
[-1.6034, -0.3520, 0.8517, -1.1324],
[-1.0382, 1.6625, -1.2870, -0.8220]])
'''
利用 torch.randn() 随机生成里一个 3 行 4 列的Tensor,或者说是数组,打印出其维度信息,和生成的值 (torch.randn 是一个库的方法,其实 numpy 实现也是一样的哈,这个没关系)
下面我们用 view() 函数改变其维度
'''
这里我们制定其维度变为 2*6,注意2*6 = 3*4,
也就是说其里面的数据的个数是一样的,只是改
变了其维度信息
'''
b = a.view(2,6)
print(b.shape)
print(b)
'''
>>>torch.Size([2, 6])
>>>tensor([[-0.5612, 0.0604, -2.5335, -0.2955, 0.3565, 0.9233],
[ 0.8334, 0.1354, 1.0830, -0.9031, -0.6071, -0.5721]])
'''
下面再来看一下,自动推理的方法,也就是 view() 函数的参数值出现 -1 是什么意思,其实也很简单,就是自动的进行了一个除法运算,一看就明白了
c = a.view(2, -1) #我们让第二个参数为 -1,意思就是让其自动推理,这里就是6
print(c.shape)
print(c)
'''
torch.Size([2, 6])
tensor([[ 0.9712, -0.0463, 0.4824, 0.8522, 1.4948, -0.1506],
[ 1.3256, 0.0739, 0.2172, -0.2138, -1.3465, -0.0074]])
'''