当使用带有 Python 绑定的 Tensorflow 时,如何将张量转换为 numpy 数组?
当使用带有 Python 绑定的 TensorFlow 时,将张量转换为 NumPy 数组的方法如下:
.numpy()
在 TensorFlow 2.x 中,默认启用了 Eager Execution(即时执行模式),这使得我们可以直接使用 .numpy() 方法将张量转换为 NumPy 数组。
import tensorflow as tf # 创建一个 TensorFlow 张量 tensor = tf.constant([[1, 2, 3], [4, 5, 6]]) # 将张量转换为 NumPy 数组 numpy_array = tensor.numpy() print(numpy_array) print(type(numpy_array))
[[1 2 3] [4 5 6]] <class 'numpy.ndarray'>
tf.constant
如果你使用的是 TensorFlow 1.x,默认情况下不会启用 Eager Execution,你可以通过以下方式启用它:
import tensorflow as tf # 启用 Eager Execution(仅适用于 TensorFlow 1.x) tf.compat.v1.enable_eager_execution() # 创建一个张量 tensor = tf.constant([[1, 2, 3], [4, 5, 6]]) # 将张量转换为 NumPy 数组 numpy_array = tensor.numpy() print(numpy_array)
如果你不想启用 Eager Execution,可以使用 TensorFlow 1.x 的会话 (Session) 来评估张量,并将其转换为 NumPy 数组:
Session
import tensorflow as tf # 创建一个张量 tensor = tf.constant([[1, 2, 3], [4, 5, 6]]) # 使用会话将张量转换为 NumPy 数组 with tf.compat.v1.Session() as sess: numpy_array = sess.run(tensor) print(numpy_array)