permute 介绍:
permute():一次性做任意维度的交换,三个变量的赋值分别问0,1,2
举例:
torch.size([3,4,6]) # 这里对应的permute(0,1,2)
torch.permute(1,0,2)
>>> torch.size([4,3,6])
torch.transpose 介绍:
torch.transpose()和torch.permute()两者作用相似,都是用于交换不同维度的内容。但其中torch.transpose()是只交换指定的两个维度的内容,permute()则可以一次性交换多个维度。
当矩阵是2维时,我们可以把transpose理解为转置。
>>> x = torch.randn(2, 3) # 随机生成(2,3)的矩阵
>>> x
tensor([[ 1.0028, -0.9893, 0.5809],
[-0.1669, 0.7299, 0.4942]])
>>> torch.transpose(x, 0, 1) # 交换x的第0维和第1维.第0维跑到第1维的位置,第1维跑到第0维的位置
tensor([[ 1.0028, -0.1669],
[-0.9893, 0.7299],
[ 0.5809, 0.4942]])
view()
view():view是将数据按照你设定的方式排列
torch.size([2,3,5])
torch.view(2,5,3)
则变成torch.size([2,5,3])
view()还支持自动计算一个维度的数量。只需要在想要自动计算的维度填上-1即可。
import torch
a1 = torch.randn([3,4,2])
print(a1.shape) # 输出结果:torch.Size([3, 4, 2])
a2 =a1.view(-1,2,6)
print(a2.shape) # 输出结果:torch.Size([2, 2, 6])