引言:首先我个人理解为这个函数是一个张量维度变换、张量矩阵转置的函数。
1.张量维度变换。
官方给出的是这个样子:Tensor.permute(*dims) → Tensor(还是不太懂)
于是参考了这里,然后自己整理思绪,探索了一下!下面给出例子!
代码:
data1=torch.randn((3,2,1)) print('data1的数据类型:',type(data1)) print('data1的数据维度:',data1.shape) data2=data1.permute(2,1,0) print('data2的数据类型:',type(data2)) print('data2的数据维度:',data2.shape)output:
data1的数据类型:
data1的数据维度: torch.Size([3, 2, 1])
data2的数据类型:
data2的数据维度: torch.Size([1, 2, 3])然后我们继续看看值变了没有?
output:
data1的输出值: tensor([[[-0.0229], 注意上面两行是一块,
[-0.4284]], 下面有两块,相当于3快(3维度)[[-0.0221],
[-0.0945]],[[ 1.1457],
[-0.7088]]])
data2的输出值: tensor([[[-0.0229, -0.0221, 1.1457],
[-0.4284, -0.0945, -0.7088]]])果然将(3,2,1)维度数据转换为(1,2,3)
2.维度转换。
在二维空间里,看的很明显,理解为矩阵转置,不知道在高纬度里面长啥样?
代码
data1=torch.randn((2,3)) print(data1) data2=data1.permute(1,0) #类似于转置 print(data2)output:
tensor([[-1.3697, 0.0934, -1.1175],
[-1.0730, -2.2339, -0.7593]])
tensor([[-1.3697, -1.0730],
[ 0.0934, -2.2339],
[-1.1175, -0.7593]])从二行三列转变为三列二行,再观察数值,发现转置了。
2.结束;
GAME OVER
如果小伙伴梦有疑问欢迎在评论区留言哦!!!
如果感觉不错的话!你懂得(O(∩_∩)O哈哈~)
欢迎和小伙伴梦一起学习,共同努力,加油!!!



