1、view函数:
a = torch.rand(4,1,28,28)
b = a.view(4,28*28)
print(b.shape) #result:torch.Size([4, 784])
首先产生一个维数为4*1*28*28的张量a,通过view函数对a张量进行操作,将a张量变为一个4*[28*28]的张量,改变之后的张量结果为上式,需注意,改变前后的元素个数不变,即4*1*28*28需等于4*[28*28],例如可以对1*28*28的照片进行处理,使之变为1*784的张量。(需注意,如要恢复数据,需要原始的维度信息)
2、unsqueeze函数
a = torch.rand(4,1,28,28)
print(a.unsqueeze(0).shape) #torch.Size([1, 4, 1, 28, 28])
unsqueeze(0)表示在0元素位置之前插入一个维度,将4*1*28*28看作是4张1*28*28的照片则1*4*1*28*28可看作1组中有4张1*28*28的照片,这个操作只改变维度不改变数据
3、squeeze函数
a = torch.rand(32)
a = a.unsqueeze(1).unsqueeze(2).unsqueeze(0) #print(a.shape) torch.Size([1, 32, 1, 1])
print(a.squeeze().shape) #result:torch.Size([32])
<