tf.constant, tf.Variable, tf.convert_to_tensor

TensorFlowの基本構文とデータ構造の中で、tf.constanttf.Variabletf.convert_to_tensor は非常に重要な3つの関数です。これらはすべてテンソル(多次元配列)の作成に使われますが、役割と性質が異なります。それぞれの詳細を以下に説明します。


1. tf.constant

説明:

tf.constant不変のテンソルを作成するための関数です。一度作成されたテンソルの値は変更できません

特徴:

  • 値は固定され、再代入や更新はできない。

  • モデルの定数パラメータや初期値などに使われる。

  • GPU/CPUに自動で配置される。

使用例:

python
import tensorflow as tf a = tf.constant([1.0, 2.0, 3.0], dtype=tf.float32) print(a)

2. tf.Variable

説明:

tf.Variable変更可能なテンソルを作成します。トレーニング中にパラメータを更新する必要がある場合に使われます(例: ニューラルネットワークの重みなど)。

特徴:

  • 値を変更(更新)可能。

  • TensorFlow の学習アルゴリズム(例えば optimizer.apply_gradients)と連携して使用される。

  • 初期値を持ち、その後 .assign().assign_add() で変更できる。

使用例:

python
w = tf.Variable(initial_value=3.0) w.assign(5.0) # 値を変更 print(w)

3. tf.convert_to_tensor

説明:

tf.convert_to_tensor は、PythonのリストやNumPy配列などをTensorFlowのテンソル型に変換するための関数です。tf.constant と似ていますが、より汎用的で、入力の型に応じて適切に変換されます。

特徴:

  • 既存のPythonデータ型(リスト、スカラー、NumPy配列など)をテンソルに変換する。

  • 内部処理で自動的に使われることも多い。

  • 明示的にテンソル化したいときに利用。

使用例:

python
import numpy as np arr = np.array([[1, 2], [3, 4]]) tensor = tf.convert_to_tensor(arr, dtype=tf.int32) print(tensor)

比較まとめ

関数名 ミュータブル(変更可能) 用途 備考
tf.constant ×(不変) 定数の定義 値の変更不可
tf.Variable ○(変更可能) 学習パラメータの保持 .assign() で更新可能
tf.convert_to_tensor ×(基本的に不変) Python/Numpy からテンソル化 内部で使用されることも多い

これらの関数は、TensorFlowプログラムにおいてデータの準備・構築・更新の基礎となる部分です。特にモデルを定義しトレーニングする場合、tf.Variable は必須の概念になります。理解を深めるには、実際に操作しながら違いを確認するのが効果的です。

生成日:2025/05/21