TensorFlow - Conceptos básicos

En este capítulo, aprenderemos los conceptos básicos de TensorFlow. Comenzaremos por comprender la estructura de datos del tensor.

Estructura de datos del tensor

Los tensores se utilizan como estructuras de datos básicas en el lenguaje TensorFlow. Los tensores representan los bordes de conexión en cualquier diagrama de flujo llamado Gráfico de flujo de datos. Los tensores se definen como matriz o lista multidimensional.

Los tensores se identifican mediante los siguientes tres parámetros:

Rango

La unidad de dimensionalidad descrita dentro del tensor se llama rango. Identifica el número de dimensiones del tensor. Un rango de un tensor puede describirse como el orden o las n dimensiones de un tensor definido.

Forma

El número de filas y columnas juntas define la forma de Tensor.

Tipo

Type describe el tipo de datos asignado a los elementos de Tensor.

Un usuario debe considerar las siguientes actividades para construir un tensor:

  • Construye una matriz n-dimensional
  • Convierta la matriz n-dimensional.

Varias dimensiones de TensorFlow

TensorFlow incluye varias dimensiones. Las dimensiones se describen brevemente a continuación:

Tensor unidimensional

El tensor unidimensional es una estructura de matriz normal que incluye un conjunto de valores del mismo tipo de datos.

Declaration

>>> import numpy as np
>>> tensor_1d = np.array([1.3, 1, 4.0, 23.99])
>>> print tensor_1d

La implementación con la salida se muestra en la captura de pantalla a continuación:

La indexación de elementos es la misma que la de las listas de Python. El primer elemento comienza con un índice de 0; para imprimir los valores a través del índice, todo lo que necesita hacer es mencionar el número de índice.

>>> print tensor_1d[0]
1.3
>>> print tensor_1d[2]
4.0

Tensores bidimensionales

La secuencia de matrices se utiliza para crear "tensores bidimensionales".

La creación de tensores bidimensionales se describe a continuación:

A continuación se muestra la sintaxis completa para crear matrices bidimensionales:

>>> import numpy as np
>>> tensor_2d = np.array([(1,2,3,4),(4,5,6,7),(8,9,10,11),(12,13,14,15)])
>>> print(tensor_2d)
[[ 1 2 3 4]
[ 4 5 6 7]
[ 8 9 10 11]
[12 13 14 15]]
>>>

Los elementos específicos de los tensores bidimensionales se pueden rastrear con la ayuda del número de fila y el número de columna especificados como números de índice.

>>> tensor_2d[3][2]
14

Manejo y manipulaciones de tensores

En esta sección, aprenderemos sobre el manejo y las manipulaciones de tensores.

Para empezar, consideremos el siguiente código:

import tensorflow as tf
import numpy as np

matrix1 = np.array([(2,2,2),(2,2,2),(2,2,2)],dtype = 'int32')
matrix2 = np.array([(1,1,1),(1,1,1),(1,1,1)],dtype = 'int32')

print (matrix1)
print (matrix2)

matrix1 = tf.constant(matrix1)
matrix2 = tf.constant(matrix2)
matrix_product = tf.matmul(matrix1, matrix2)
matrix_sum = tf.add(matrix1,matrix2)
matrix_3 = np.array([(2,7,2),(1,4,2),(9,0,2)],dtype = 'float32')
print (matrix_3)

matrix_det = tf.matrix_determinant(matrix_3)
with tf.Session() as sess:
   result1 = sess.run(matrix_product)
   result2 = sess.run(matrix_sum)
   result3 = sess.run(matrix_det)

print (result1)
print (result2)
print (result3)

Output

El código anterior generará la siguiente salida:

Explicación

Hemos creado matrices multidimensionales en el código fuente anterior. Ahora, es importante entender que creamos gráficos y sesiones, que administran los tensores y generan la salida adecuada. Con la ayuda del gráfico, tenemos la salida que especifica los cálculos matemáticos entre tensores.