TensorFlow で 2つのテンソルを水平方向に連結する
この簡単な記事では、Python の TensorFlow v2.8.2
フレームワークを使用した 2つのテンソルの水平連結について説明します。 最初に、Python でのテンソルの水平連結の視覚的表現について説明し、次にそれらを連結する方法について説明します。
テンソルの水平連結
テンソルは、均一な型 (dtype
と呼ばれる) を持つ多次元配列です。 Python では、多次元配列用にサポートされているライブラリが多数あります (例: NumPy
、PyTorch
、TensorFlow
など)。
TensorFlow
ライブラリは Google によって開発された、高度で多機能なライブラリの 1つです。 機械学習タスクの実行中にテンソルを簡単に作成および操作するのに最適です。
テンソルの視覚的表現
テンソルは多次元にすることができます。 例: 1 次元 (ランク 1 テンソル)、2 次元 (ランク 2 テンソル)、3 次元 (ランク 3 テンソル) など。
1 次元テンソルの水平連結
水平連結の場合、テンソルは最初の次元が同じでなければなりません。 下の図では、テンソル A (shape=(1,3)
) とテンソル B (shape=(1,3)
) を水平方向に連結すると、結果のテンソルが得られます。
この場合、Tensor A と Tensor B は同じ最初の次元 (つまり、1 に等しい) を持ちます。 次の図に示すように、連結されたテンソルは shape=(1, 6)
になります。
2 次元テンソルの水平連結
2 次元テンソルは行列のように見えます。 下の図では、2つの 2 次元テンソル (つまり、テンソル A (shape=(2,3)
) とテンソル B (shape=(2,3)
)) を水平方向に連結すると、結果のテンソルが得られます。
Tensor A と Tensor B は同じ最初の次元 (つまり、2 に等しい) を持ち、結果の連結テンソルは shape=(2, 6)
であることに注意してください。
TensorFlow で 2つのテンソルを水平方向に連結する
ここで、Python で TensorFlow
を使用してテンソルを水平方向に連結する方法を見ていきます。
pip install tensorflow
まず、上記のコマンドを使用して TensorFlow
ライブラリをインストールします。
import tensorflow as tf
t1 = [[1, 2], [3, 4]]
t2 = [[5, 6, 7], [8, 9, 10]]
result = tf.concat([t1, t2], 1)
print(result)
上記のコードでは、最初に TensorFlow
ライブラリをインポートしてから、形状 (2, 2)
と (2, 3)
の 2つのテンソル t1
と t2
をそれぞれ宣言しました。 その後、tf.concat(values, axis, name)
関数を使用して、軸 1 に沿ってテンソルを連結しました。
ここで、 axis= 1
は、テンソルが水平方向に連結されることを意味します。
tf.concat(values, axis, name)
関数は次の 3つの引数を取ります。
values
- テンソルのリスト。axis
- 連結する次元を表す 0 次元テンソル。name
(オプション) - 操作の名前を表します。
concat
関数の詳細な説明は こちら にあります。
上記のコードは、次の出力テンソルを提供します。
tf.Tensor(
[[ 1 2 5 6 7]
[ 3 4 8 9 10]], shape=(2, 5), dtype=int32)
]
結果のテンソルは (2, 5)
の形になります。 これは、result
テンソルが 2 行 5 列で構成されているため明らかです。