Convert Tensor to NumPy Array in Python

  1. Convert a Tensor to a NumPy Array With the Tensor.numpy() Function in Python
  2. Convert a Tensor to a NumPy Array With the Tensor.eval() Function in Python
  3. Convert a Tensor to a NumPy Array With the TensorFlow.Session() Function in Python

This tutorial will introduce the methods to convert a Tensor to a NumPy array in Python.

Convert a Tensor to a NumPy Array With the Tensor.numpy() Function in Python

The Eager Execution of the TensorFlow library can be used to convert a tensor to a NumPy array in Python. With Eager Execution, the behavior of the operations of TensorFlow library changes, and the operations execute immediately. We can also perform NumPy operations on Tensor objects with Eager Execution. The Tensor.numpy() function converts the Tensor to a NumPy array in Python. In TensorFlow 2.0, the Eager Execution is enabled by default. So, this approach works best for the TensorFlow version 2.0. See the following code example.

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)

Output:

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]]

In the above code, we first created and initialized the Tensor object tensor with the tf.constant() function in Python. We printed the tensor and converted it to a NumPy array array with the tensor.numpy() function in Python. In the end, we printed the array.

Convert a Tensor to a NumPy Array With the Tensor.eval() Function in Python

We can also use the Tensor.eval() function to convert a Tensor to a NumPy array in Python. This method is not supported in the TensorFlow version 2.0. So, we have to either keep the previous version 1.0 of the TensorFlow or disable all the behavior of version 2.0 of the TensorFlow library. See the following code example.

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)

Output:

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

In the above code, we converted the Tensor object tensor to the NumPy array array with the tensor.eval() function in Python. We first imported version 1.0 of the TensorFlow library and disabled all the behavior of version 2.0. We then created and initialized the tensor with the tf.constant() function and printed the values in tensor. We then executed the tensor.eval() function and saved the returned value inside the array, and printed the values in array.

Convert a Tensor to a NumPy Array With the TensorFlow.Session() Function in Python

The TensorFlow.Session() is another method that can be used to convert a Tensor to a NumPy array in Python. This method is very similar to the previous approach with the Tensor.eval() function. This approach is also not supported by version 2.0 of the TensorFlow library. We either have to install version 1.0 of the TensorFlow library or disable all the behavior of version 2.0 of the TensorFlow library. We can pass our Tensor object to the TensorFlow.Session().run() function to convert that Tensor object to a NumPy array in Python. See the following code example.

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)

Output:

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

In the above code, we converted the Tensor object tensor to the NumPy array array with the tf.Session.run(tensor) function in Python. We first imported the version 1.0 compatible TensorFlow library and disabled all the behavior of version 2.0. We then created the Tensor object tensor and printed the values of tensor. We then converted the tensor Tensor to the array NumPy array with the tf.Session.run(tensor) function and printed the values in array.

Contribute
DelftStack is a collective effort contributed by software geeks like you. If you like the article and would like to contribute to DelftStack by writing paid articles, you can check the write for us page.