Tensorとは何か(定義、次元、操作)

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)

python
import tensorflow as tf # スカラー scalar = tf.constant(7) # ベクトル vector = tf.constant([1.0, 2.0, 3.0]) # 行列 matrix = tf.constant([[1, 2], [3, 4]]) # ランダムなテンソル(正規分布) random_tensor = tf.random.normal([2, 3])

基本操作

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配列と相互変換が可能です。

python
import numpy as np np_array = np.array([[1, 2], [3, 4]]) tensor = tf.convert_to_tensor(np_array) # TensorFlowのテンソルをNumPyに変換 np_from_tensor = tensor.numpy()

5. 実用上のポイント

  • TensorFlowのすべての演算(モデル構築・訓練・推論)はテンソルベースで行われます。

  • テンソルのランクやshapeを正確に理解することは、誤ったブロードキャストや行列積のバグを防ぐ上で重要です。

  • tf.Tensorは基本的に**イミュータブル(変更不可)**です。変化を伴う操作は新たなテンソルとして返されます。


まとめ

テンソルはTensorFlowにおけるデータの基本単位であり、多次元配列としての性質を持っています。ランク(次元数)と形状(shape)を意識しながら、演算・変換・スライスなどの操作を行うことが、機械学習モデルの構築において不可欠です。テンソルを正しく扱う力は、TensorFlowの効果的な活用の基盤となります。

生成日:2025/05/21