转载:http://www.studyai.com/article/bba734ff
Tensor.permute(a,b,c,d,)
permute可以对任意高维矩阵进行转置.
但没有 torch.permute() 这个调用方式, 只能 Tensor.permute()。
t.rand(2,3,4,5).permute(3,2,0,1).shape
Out[669]: torch.Size([5, 4, 2, 3])
torch.Transpose(Tensor, a,b)
transpose只能操作2D矩阵的转置。有两种调用方式。
连续使用transpose也可实现permute的效果。
torch.transpose(Tensor, 1, 0)
t.rand(2,3,4,5).transpose(3,0).transpose(2,1).transpose(3,2).shape
Out[672]: torch.Size([5, 4, 2, 3])
t.rand(2,3,4,5).transpose(1,0).transpose(2,1).transpose(3,1).shape
Out[670]: torch.Size([3, 5, 2, 4])