質問するログイン新規登録
PyTorch

PyTorchは、オープンソースのPython向けの機械学習ライブラリ。Facebookの人工知能研究グループが開発を主導しています。強力なGPUサポートを備えたテンソル計算、テープベースの自動微分による柔軟なニューラルネットワークの記述が可能です。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

759閲覧

pytorchのpermuteメソッドについて

runrun5

総合スコア21

PyTorch

PyTorchは、オープンソースのPython向けの機械学習ライブラリ。Facebookの人工知能研究グループが開発を主導しています。強力なGPUサポートを備えたテンソル計算、テープベースの自動微分による柔軟なニューラルネットワークの記述が可能です。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2023/07/17 02:04

0

0

pytorchのpermuteメソッドについて、
.permute()の引数には、並び替える順番をタプル型で指定すると認識しています。
下記の場合ですと、(2, 3, 5)がpermute(1, 0, 2)によって(3, 2, 5)になるところまでは理解できます。

python

1a = torch.ones(2, 3, 5) 2print(a.size()) 3b = a.permute(1, 0, 2) 4print(b.size())

出力:

python

1torch.Size([2, 3, 5]) 2torch.Size([3, 2, 5])

一方で、permute(2, 0, 1)とした場合に、出力が、torch.Size([3, 5, 2])とならずに、
torch.Size([5, 2, 3])となる理由が理解できません。
初歩的な質問で申し訳ないですが、ご回答いただけますと幸いです。

python

1x = torch.randn(2, 3, 5) 2print(x.size()) 3x_permute = x.permute(2, 0, 1) 4print(x_permute.size())

出力:

python

1torch.Size([2, 3, 5]) 2torch.Size([5, 2, 3])

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

a = torch.Size([2, 3, 5])の場合、
permute(2, 0, 1)であれば、
2には、aの2番目である5が入る
0には、aの0番目である2が入る
1には、aの1番目である3が入る ので、
torch.Size([5, 2, 3])
となると理解しました。

投稿2023/07/17 02:11

runrun5

総合スコア21

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問