Googleによって開発されている機械学習ライブラリであるTensorFlowで、Tensorを転置する方法を解説します。
Tensorを転置する方法
転置とは、Tensorの行と列を入れ替える操作の事を言います。Tensor同士の掛け算をする際にはよく転置を使用します。
本記事では、Tensorを転置する方法を紹介します。
tf.transposeを使用してTensorを転置する
Tensorを転置するには、以下のようにtf.transposeを使用します。
import tensorflow as tf tensor = tf.constant([[1, 2], [3, 4], [5, 6]], dtype=tf.float16) print(tensor, "\n") # ===== Tensorを転置する transposed_tensor = tf.transpose(tensor) print(transposed_tensor)
【実行結果】 tf.Tensor( [[1. 2.] [3. 4.] [5. 6.]], shape=(3, 2), dtype=float16) tf.Tensor( [[1. 3. 5.] [2. 4. 6.]], shape=(2, 3), dtype=float16)
上記の例では、3×2のTensorをtf.transposeを用いることで2×3のTensorに転置できていることが分かるかと思います。
Note
tf.transposeの公式ドキュメントはこちらを参照してください。
Note
【NumPyの「.T」による転置との違い】
NumPyをよく使用する人は、「.T」による転置(例えば、配列tがあった場合に、転置はt.T)に慣れているかもしれませんが、TensorFlowでは実行できません。なお、NumPyの「.T」では同じデータを転置したビューを作るのに対して、tf.transpose()はデータのコピーを作り、それを転置して新しいテンソルを作る点で微妙に動作の違いがあります。
まとめ
Googleによって開発されている機械学習ライブラリであるTensorFlowで、Tensorを転置する方法を解説しました。
Tensorを転置するにはtf.transposeを使用することができます。Tensor同士の掛け算をする際にはよく転置は利用するので、しっかりと使い方を覚えておきましょう。
ソースコード
上記で紹介しているソースコードについてはgithubにて公開しています。参考にしていただければと思います。