Python で Tensor を NumPy 配列に変換する

Muhammad Maisam Abbas 2023年12月11日
  1. Python の Tensor.numpy() 関数を使用して Tensor を NumPy 配列に変換する
  2. Python の Tensor.eval() 関数を使用して Tensor を NumPy 配列に変換する
  3. Python の TensorFlow.Session() 関数を使用して Tensor を NumPy 配列に変換する
Python で Tensor を NumPy 配列に変換する

このチュートリアルでは、Python で Tensor を NumPy 配列に変換する方法を紹介します。

Python の Tensor.numpy() 関数を使用して Tensor を NumPy 配列に変換する

TensorFlow ライブラリの Eager Execution を使用して、Python でテンソルを NumPy 配列に変換できます。Eager Execution を使用すると、TensorFlow ライブラリの操作の動作が変更され、操作がすぐに実行されます。Eager Execution を使用して Tensor オブジェクトに対して NumPy 操作を実行することもできます。Tensor.numpy() 関数は、Python で Tensor を NumPy 配列に変換します。TensorFlow 2.0 では、Eager Execution がデフォルトで有効になっています。したがって、このアプローチは TensorFlow バージョン 2.0 に最適です。次のコード例を参照してください。

import tensorflow as tf

tensor = tf.constant([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print("Tensor = ", tensor)
array = tensor.numpy()
print("Array = ", array)

出力:

Tensor =  tf.Tensor(
[[1 2 3]
 [4 5 6]
 [7 8 9]], shape=(3, 3), dtype=int32)
Array =  [[1 2 3]
 [4 5 6]
 [7 8 9]]

上記のコードでは、最初に Tensor オブジェクト tensor を Python の tf.constant() 関数で作成して初期化しました。tensor を出力し、Python の tensor.numpy() 関数を使用して NumPy 配列 array に変換しました。最後に、配列を出力しました。

Python の Tensor.eval() 関数を使用して Tensor を NumPy 配列に変換する

Tensor.eval() 関数を使用して、Python で Tensor を NumPy 配列に変換することもできます。このメソッドは、TensorFlow バージョン 2.0 ではサポートされていません。そのため、TensorFlow の以前のバージョン 1.0 を維持するか、TensorFlow ライブラリのバージョン 2.0 のすべての動作を無効にする必要があります。次のコード例を参照してください。

import tensorflow.compat.v1 as tf

tf.disable_v2_behavior()
tensor = tf.constant([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print("Tensor = ", tensor)
array = tensor.eval(session=tf.Session())
print("Array = ", array)

出力:

Tensor =  Tensor("Const_1:0", shape=(3, 3), dtype=int32)
Array =  [[1 2 3]
 [4 5 6]
 [7 8 9]]

上記のコードでは、Python の tensor.eval() 関数を使用して、Tensor オブジェクト tensor を NumPy 配列 array に変換しました。最初に TensorFlow ライブラリのバージョン 1.0 をインポートし、バージョン 2.0 のすべての動作を無効にしました。次に、tf.constant() 関数を使用して tensor を作成および初期化し、値を tensor に出力しました。次に、tensor.eval() 関数を実行し、戻り値を array 内に保存し、値を array に出力しました。

Python の TensorFlow.Session() 関数を使用して Tensor を NumPy 配列に変換する

TensorFlow.Session() は、Python で Tensor を NumPy 配列に変換するために使用できるもう 1つのメソッドです。このメソッドは、Tensor.eval() 関数を使用した以前のアプローチと非常によく似ています。このアプローチは、TensorFlow ライブラリのバージョン 2.0 でもサポートされていません。TensorFlow ライブラリのバージョン 1.0 をインストールするか、TensorFlow ライブラリのバージョン 2.0 のすべての動作を無効にする必要があります。Tensor オブジェクトを TensorFlow.Session().run() 関数に渡して、その Tensor オブジェクトを Python の NumPy 配列に変換できます。次のコード例を参照してください。

import tensorflow.compat.v1 as tf

tf.disable_v2_behavior()
tensor = tf.constant([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print("Tensor = ", tensor)
array = tf.Session().run(tensor)
print("Array = ", array)

出力:

Tensor =  Tensor("Const_6:0", shape=(3, 3), dtype=int32)
Array =  [[1 2 3]
 [4 5 6]
 [7 8 9]]

上記のコードでは、Python の tf.Session.run(tensor) 関数を使用して、Tensor オブジェクト tensor を NumPy 配列 array に変換しました。最初にバージョン 1.0 互換の TensorFlow ライブラリをインポートし、バージョン 2.0 のすべての動作を無効にしました。次に、Tensor オブジェクト tensor を作成し、tensor の値を出力しました。次に、tf.Session.run(tensor) 関数を使用して tensor Tensor を array NumPy 配列に変換し、値を array に出力しました。

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn