TensorFlowにおける「Tensor(テンソル)」は、データを表現・操作するための基本的なデータ構造であり、機械学習モデルのすべての入力・出力・内部計算はテンソルを介して行われます。以下に、テンソルの定義、次元、主な操作について詳しく説明します。
1. テンソルとは何か(定義)
テンソルとは、多次元配列(多軸を持つ数値のコンテナ)のことで、数学的にはスカラー(0次元)、ベクトル(1次元)、行列(2次元)などを含むより一般化された構造です。
TensorFlowでは、テンソルは以下の属性を持ちます:
-
データ型(dtype):例
tf.float32,tf.int32など -
形状(shape):各次元のサイズ(例
[3, 4]など) -
ランク(rank):テンソルの次元数(例:2次元ならランク2)
TensorFlowのテンソルは tf.Tensor 型のオブジェクトとして表現され、NumPy配列に似たインターフェースを持ちます。
2. テンソルの次元(ランク)と例
| ランク(次元数) | 名称 | 例(形状) | 説明 |
|---|---|---|---|
| 0 | スカラー | [] |
単一の数値 |
| 1 | ベクトル | [3] |
長さ3の一次元配列 |
| 2 | 行列 | [3, 4] |
3行4列の行列 |
| 3 | 3次元 | [2, 3, 4] |
2つの3行4列行列(テンソル) |
| 4以上 | 高次元 | [10, 28, 28, 1] |
画像データ(例:28×28の画像10枚) |
3. テンソルの生成と基本操作
テンソルの生成(例:Python + TensorFlow)
基本操作
TensorFlowではテンソルに対して様々な操作が可能です:
| 操作 | 関数例 | 説明 |
|---|---|---|
| 和・積などの演算 | tf.add, tf.multiply, tf.matmul |
要素ごとの演算や行列積 |
| 次元操作 | tf.reshape, tf.expand_dims |
テンソルの形状を変形 |
| スライス | tensor[0:2, 1] |
一部の要素を取り出す |
| 転置 | tf.transpose(tensor) |
軸の入れ替え |
| 統計関数 | tf.reduce_mean, tf.reduce_sum |
平均、合計などの集約処理 |
4. テンソルとNumPyの関係
TensorFlowのテンソルはNumPy配列と相互変換が可能です。
5. 実用上のポイント
-
TensorFlowのすべての演算(モデル構築・訓練・推論)はテンソルベースで行われます。
-
テンソルのランクやshapeを正確に理解することは、誤ったブロードキャストや行列積のバグを防ぐ上で重要です。
-
tf.Tensorは基本的に**イミュータブル(変更不可)**です。変化を伴う操作は新たなテンソルとして返されます。
まとめ
テンソルはTensorFlowにおけるデータの基本単位であり、多次元配列としての性質を持っています。ランク(次元数)と形状(shape)を意識しながら、演算・変換・スライスなどの操作を行うことが、機械学習モデルの構築において不可欠です。テンソルを正しく扱う力は、TensorFlowの効果的な活用の基盤となります。
生成日:2025/05/21