Empecemos.
Que es un tensor?
Un tensor o tensor de flujo de tensor para abreviar se refiere a una matriz multidimensional con un tipo uniforme. Por ejemplo, considere un tensor como una colección de vectores y matrices en una matriz multidimensional.
Al igual que las cuerdas de Python, un tensor es inmutable y no le permite cambiar su contenido después de la declaración.
Podemos crear un tensor como se muestra en el siguiente fragmento:
importar tensorflow como tf
importar numpy como np
tensor = tf.constante ([[10,20], [30,40], [50,60]])
Imprimir (tensor)
En el código dado, comenzamos importando los módulos TensorFlow y Numpy como TF y N, respectivamente.
Luego creamos un nuevo tensor usando la función constante y lo pasamos a una matriz. Impresión El valor resultante devuelve una salida como se muestra a continuación:
TF.Tensor(
[[10 20]
[30 40]
[50 60]], forma = (3, 2), dtype = int32)
El código devuelve un nuevo tensor de forma A (3,2) y tipo de datos de INT32.
Método 1: Python Convertir Tensor a una matriz Numpy
El primer y más común método que podemos usar para convertir un tensor en una matriz numpy es el tensor.función numpy ().
La función devuelve un tensor proporcionado como un ndarray numpy.
Un código de ejemplo es como se muestra en el siguiente:
importar tensorflow como tf
importar numpy como np
tensor = tf.constante ([[10,20], [30,40], [50,60]])
tensor_array = tensor.numpy ()
Imprimir (tipo (tensor))
imprimir (tipo (tensor_array))
En el ejemplo dado, usamos la función numpy () que permite convertir un tipo de tensor de entrada en un ndarray numpy.
El código anterior debe devolver los tipos resultantes de la siguiente manera:
Podemos ver en la salida anterior que el valor se convierte de un Eagertensor a un Numpy Ndarray.
NOTA: El método representado previamente funciona en TensorFlow versión 2 y superior.
A veces, es posible que deba habilitar la ejecución ansiosa en su instalación de TensorFlow.
Método 2: Versiones más antiguas de TensorFlow o ejecución ansiosa deshabilitada
Supongamos que tienes TensorFlow versión 1.0 y me gustaría convertir un tensor en una matriz numpy. Para eso, puedes usar el tensorflow.Método session ().
El tensor.El objeto session () nos proporciona la función run () que puede ayudar en nuestro caso. El paso de una función tensor devuelve una matriz numpy como se ilustra en el siguiente código:
importar tensorflow.compat.V1 como TF
TF.compat.V1.disable_v2_behavior ()
tensor = tf.constante ([[1,2], [3,4], [5,6]])
tensor_array = tf.Sesión().correr (tensor)
imprimir (tipo (tensor_array))
Comenzamos importando la versión V1 de TensorFlow en el código anterior. Esto nos da acceso a la función Session ().
Luego deshabilitamos el comportamiento v2 como se ilustra en el código en la línea 2.
El bloque V2 deshabilita las características de TensorFlow V2 que pueden dar como resultado un error como se muestra en lo siguiente:
AttributeRor: Module 'TensorFlow' no tiene atributo 'Sesión'
A continuación, creamos un tensor con la función constante.
Por último, ejecutamos el código para convertir el tensor.
El tipo resultante es como se muestra en lo siguiente:
Recuerde que no todos los tensores pasados a la función de ejecución se devuelven como una matriz Numpy.
Por ejemplo:
importar tensorflow.compat.V1 como TF
TF.compat.V1.disable_v2_behavior ()
tensor = tf.escaso.SparSetensor (Indices = [[0, 0], [1, 2]], valores = [1, 2], dense_shape = [3, 4])
tensor_array = tf.Sesión().correr (tensor)
imprimir (tipo (tensor_array))
Usamos un tipo de sparsetensor en este ejemplo y lo pasamos a la función de ejecución. El código anterior devuelve un resultado como se muestra en el siguiente:
En este caso, obtenemos un Valor SparSetensorRo en lugar de una matriz Numpy.
Método 3: Uso de la función EVAL
Si está utilizando la versión 1 de TensorFlow, puede usar la función eval () para lograr lo mismo.
La funcionalidad es muy similar a la función de ejecución ilustrada en el ejemplo anterior. Veamos el siguiente código de ejemplo:
importar tensorflow.compat.V1 como TF
TF.compat.V1.disable_v2_behavior ()
tensor = tf.constante ([[1,2,3], [4,5,6]])
Imprimir (tipo (tensor))
tensor_array = tensor.eval (sesión = TF.Sesión())
imprimir (tipo (tensor_array))
Del mismo modo, el código anterior devuelve una matriz Numpy.
Conclusión
Este artículo explora los tres métodos principales para convertir un tensor en una matriz numpy. Esperamos que hayas disfrutado el tutorial.
Gracias por leer!!