PyTorch 高维矩阵转置 Transpose 和 Permute

转载: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).shapeOut[669]: torch.Size([5, 4, 2, 3])

  1.  
  2.  
  1.  

torch.Transpose(Tensor, a,b)

transpose只能操作2D矩阵的转置。有两种调用方式。
连续使用transpose也可实现permute的效果。

 
  1. torch.transpose(Tensor, 1, 0)
  2.  
  3. t.rand(2,3,4,5).transpose(3,0).transpose(2,1).transpose(3,2).shape
  4. Out[672]: torch.Size([5, 4, 2, 3])
  5.  
  6. t.rand(2,3,4,5).transpose(1,0).transpose(2,1).transpose(3,1).shape
  7. Out[670]: torch.Size([3, 5, 2, 4])

你可能感兴趣的:(PyTorch 高维矩阵转置 Transpose 和 Permute)