Converti Tensor in NumPy Array in Python

Muhammad Maisam Abbas 11 dicembre 2023
  1. Converti un tensore in un array NumPy con la funzione Tensor.numpy() in Python
  2. Converti un tensore in un array NumPy con la funzione Tensor.eval() in Python
  3. Converti un tensore in un array NumPy con la funzione TensorFlow.Session() in Python
Converti Tensor in NumPy Array in Python

Questo tutorial introdurrà i metodi per convertire un tensore in un array NumPy in Python.

Converti un tensore in un array NumPy con la funzione Tensor.numpy() in Python

La Eager Execution della libreria TensorFlow può essere utilizzata per convertire un tensore in un array NumPy in Python. Con Eager Execution, il comportamento delle operazioni della libreria TensorFlow cambia e le operazioni vengono eseguite immediatamente. Possiamo anche eseguire operazioni NumPy su oggetti Tensor con Eager Execution. La funzione Tensor.numpy() converte il Tensore in un array NumPy in Python. In TensorFlow 2.0, la Eager Execution è abilitata per impostazione predefinita. Quindi, questo approccio funziona meglio per la versione 2.0 di TensorFlow. Vedere il seguente esempio di codice.

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)

Produzione:

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

Nel codice sopra, abbiamo prima creato e inizializzato l’oggetto Tensor tensor con la funzione tf.constant() in Python. Abbiamo stampato il tensore e lo abbiamo convertito in un array NumPy con array con la funzione tensor.numpy() in Python. Alla fine, abbiamo stampato il array.

Converti un tensore in un array NumPy con la funzione Tensor.eval() in Python

Possiamo anche usare la funzione Tensor.eval() per convertire un Tensor in un array NumPy in Python. Questo metodo non è supportato nella versione 2.0 di TensorFlow. Quindi, dobbiamo mantenere la versione precedente 1.0 di TensorFlow o disabilitare tutto il comportamento della versione 2.0 della libreria TensorFlow. Vedere il seguente esempio di codice.

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)

Produzione:

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

Nel codice sopra, abbiamo convertito l’oggetto Tensor tensor nell’array NumPy array con la funzione tensor.eval() in Python. Per prima cosa abbiamo importato la versione 1.0 della libreria TensorFlow e disabilitato tutto il comportamento della versione 2.0. Abbiamo quindi creato e inizializzato il tensore con la funzione tf.constant() e stampato i valori in tensore. Abbiamo quindi eseguito la funzione tensor.eval() e salvato il valore restituito all’interno di array, e stampato i valori in array.

Converti un tensore in un array NumPy con la funzione TensorFlow.Session() in Python

Il TensorFlow.Session() è un altro metodo che può essere utilizzato per convertire un Tensor in un array NumPy in Python. Questo metodo è molto simile al precedente approccio con la funzione Tensor.eval(). Anche questo approccio non è supportato dalla versione 2.0 della libreria TensorFlow. Dobbiamo installare la versione 1.0 della libreria TensorFlow o disabilitare tutto il comportamento della versione 2.0 della libreria TensorFlow. Possiamo passare il nostro oggetto Tensor alla funzione TensorFlow.Session().run() per convertire quell’oggetto Tensor in un array NumPy in Python. Vedere il seguente esempio di codice.

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)

Produzione:

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

Nel codice sopra, abbiamo convertito l’oggetto Tensor tensor nell’array NumPy array con la funzione tf.Session.run(tensor) in Python. Per prima cosa abbiamo importato la libreria TensorFlow compatibile con la versione 1.0 e abbiamo disabilitato tutto il comportamento della versione 2.0. Abbiamo quindi creato l’oggetto Tensor tensor e stampato i valori di tensor. Abbiamo quindi convertito il tensore tensor nell’array NumPy array con la funzione tf.Session.run(tensor) e stampato i valori in 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