Convierta Tensor en NumPy Array en TensorFlow
Este artículo demuestra las formas de convertir tensores en una matriz NumPy en TensorFlow. La compatibilidad de NumPy con TensorFlow es excelente y podemos convertir fácilmente un tensor en una matriz NumPy.
Este artículo mostrará dos métodos para convertir tensores en una matriz NumPy.
Tensores de TensorFlow frente a matrices NumPy
Un Array es una estructura de datos utilizada para almacenar una colección de elementos. Para admitir la operación numérica más rápida asociada con las matrices, NumPy y TensorFlow son bibliotecas útiles y se pueden usar fácilmente en Python.
La biblioteca NumPy se usa principalmente para tareas clásicas de aprendizaje automático, mientras que TensorFlow admite muy bien los cálculos de aprendizaje profundo. Un beneficio importante de un tensor sobre una matriz es que las GPU procesan mejor los tensores que las matrices primitivas.
Convierta Tensor en NumPy Array en TensorFlow
TensorFlow admite la conversión automática de la matriz NumPy durante la implementación. Puede ver el siguiente código para la conversión automática.
!pip install tensorflow==2.9.1
import numpy as np
import tensorflow as tf
ndarray = np.ones([3, 3])
print("TensorFlow operations convert numpy arrays to Tensors automatically")
tensor = tf.math.multiply(ndarray, 42)
print(tensor)
En el código anterior, ndarray
es una matriz NumPy, y tf.math.multiply(tensor1, tensor2)
lo toma como argumento y lo convierte en un tensor automáticamente antes de la multiplicación con el otro tensor (es decir, 42). Tenga en cuenta que tensor1
y tensor
deben ser del mismo tipo.
Ahora, veremos un método de conversión explícito. Para ser llamado en un tensor, debe usar la función .numpy()
.
# Convert tensor to numpy array explicitly.
a = tf.constant([[1, 2], [3, 4]])
b = a.numpy()
print(type(b))
En el código anterior, a
es un tensor constante sobre el que llamamos a la función integrada .numpy()
, que convierte el tensor a
en una matriz NumPy.
Lo anterior da la salida como:
numpy.ndarray
En TensorFlow, la ejecución ansiosa es un entorno que admite la ejecución rápida de las diferentes operaciones de tensores sin crear gráficos visuales en segundo plano.
De forma predeterminada, la ejecución ansiosa en TensorFlow está habilitada. Pero si lo desactiva durante la implementación, no puede convertir el tensor en una matriz NumPy.
En ese caso, verá el siguiente código;
tf.compat.v1.disable_eager_execution() # need to disable eager in TF2.9.1
# Multiplication
a = tf.constant([1, 2])
b = tf.constant(6)
c = a * b
sess = tf.compat.v1.Session()
# Evaluate the tensor c.
print(type(sess.run(c)))
Puede visitar esta página para consultar más operaciones interrelacionadas entre TensorFlow y NumPy.