pytorchのディメンションスワップpermute()関数

最初のステップは、公式ドキュメントで置換の説明を与えることです:

https://pytorch.org/docs/stable/tensors.html?highlight=permute#torch.Tensor.permute

次のステップでは、公式文書を母国語で説明します。

順列とは、中国語で「順列と組み合わせ」を意味します。permute()は、テンソルの任意の次元を交換できます。

デモを見てみましょう:

import torch
a = torch.randn(2,3,5)
b = a.permute(1,2,0)
print(b.shape)

permuteのパラメーターはテンソルaの次元インデックスに対応することに注意してくださいしたがって、permuteの入力パラメーターの次元はaと一致している必要があり、0、1、2 ...、dimなどの値のみにすることができるため、aの次元には1つずつインデックスを付けることができます。

a.permute(1,2,0)は、aの最初の次元を最後に置くこと意味します。

結論として

同じテンソルの場合、要素の総数は固定されており、置換の役割はm×n×cをn×m×cやc×n×mなどの任意の組み合わせに変更することです。

2次元テンソルの場合、permute(1,0)が行うのは転置です。これはtranspose()と同等です。

おすすめ

転載: blog.csdn.net/leviopku/article/details/108752028