pytorch --- tensor.permute()和torch.transpose()

tensor.permute(DIM1、M2に、DIM3、...)

並び替えるには、任意の高次元の行列に置き換えることができる。しかし、唯一のtensor.permute()はこの方法を呼び出します

x = torch.rand(2,3,4)
print("x.shape:", x.shape)
x = x.permute(2,1,0)
print("x.shape:", x.shape)

出力:

x.shape: torch.Size([2, 3, 4])
x.shape: torch.Size([4, 3, 2])
[Finished in 1.0s]

例2:

t.rand(2,3,4,5).permute(3,2,0,1).shape
Out[669]: torch.Size([5, 4, 2, 3])

要約
変換が行われない前に着信並び替える方法パラメータが寸法で、DIMが[0、1、2]の方法は、変換は一次元及び二次元0交換を表します

torch.transpose(テンソル、DIM1、DIM2)

2D動作転置行列を転置することができる(転置は、二次元の間で切り替えるための時間であり、他の寸法は変わりません)。呼び出すには二つの方法があります。効果並び替える連続使用転置を達成することができます

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])

転置と並び替えるとの違い

主な違いは、転置のみ二次元の間で切り替えることができる場合、それはいくつかの次元に変換することができ並べ替えます

参考
トランスポーズとPERMUTE転置PyTorch高次元の行列

公開された33元の記事 ウォンの賞賛1 ビュー2617

おすすめ

転載: blog.csdn.net/orangerfun/article/details/103957890