[vc_row][vc_column][vc_column_text]Hechemos un vistazo a TensorFlow y revisemos los graphs y los beneficios de utilizarlos. También hechemos un vistazo a lo que son las sesiones.
TensorFlow es una biblioteca de Machine Learning de código abierto para investigación y producción. TensorFlow ofrece un API para principiantes y expertos para el desarrollo en aplicaciones de escritorio, móvil, web y la nube. A continuación veremos como utilizarla.
Instalar TensorFlow es una tarea fácil. El método recomendado para instalarlo es utilizando el entorno virtual. Los entornos virtuales de Python se utilizan para aislar la instalación de paquetes del sistema.
Si esta utilizando ubuntu, simplemente escriba el siguiente comando en el terminal, es la forma más sencilla:
1 | pip3 install tensorflow |
Antes de entrar a detalles de código, se debe conocer ciertos detalles de TensorFlow.[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column][vc_column_text]
¿Que es un Graph?
TensorFlow utiliza un gráfico de flujo de datos para representar el cálculo en términos de las dependencias entre operaciones individuales. Esto conduce a un modelo de programación de bajo nivel en el que primero define un gráfico de flujo de datos, luego crea una sesión de TensorFlow para ejecutar partes del gráfico en un conjunto de dispositivos locales y remotos. Esto se conoce comúnmente como un modelo de programación de flujo de datos, especialmente para la computación en paralelo.
Los nodos en el gráfico representan operaciones matemáticas, mientras que los bordes del gráfico representan las matrices de datos multidimensionales (tensores) comunicadas entre ellos. La arquitectura flexible le permite implementar la computación en una o más CPU o GPU en una computadora de escritorio, servidor o dispositivo móvil con una sola API.
Puedes ver la gráfica como las funciones que has usado en matemáticas. Cuando conectas variables te da la salida. Si la función se llama f, esta relación se denota y=f(x), el elemento x es el argumento o entrada de la función, y Y es el valor de la función, la salida o la imagen de x por f.[/vc_column_text][vc_single_image image=»2046″ img_size=»full» alignment=»center» css=».vc_custom_1540928181200{margin-top: 0px !important;margin-bottom: 0px !important;border-top-width: 0px !important;border-bottom-width: 0px !important;padding-top: 0px !important;padding-bottom: 0px !important;}»][/vc_column][/vc_row][vc_row][vc_column][vc_column_text]
Entonces, ¿Cuales son los beneficios de usar Graphs?
- Paralelismo: al usar bordes explícitos para representar dependencias entre operaciones, es fácil para el sistema identificar las operaciones que se puedan ejecutar en paralelo.
- Ejecución distribuida: al usar bordes explícitos para representar los valores que fluyen entre las operaciones, es posible que TensorFlow particione su programa en múltiples dispositivos (CPU, GPU y TPU) conectados a diferentes máquinas. TensorFlow inserta la comunicación y coordinación necesaria entre dispositivos.
- Compilación: el compilador XLA de TensorFlow puede usar la información en su gráfico de flujo de datos para generar un código más rápido, por ejemplo, fusionando operaciones adyacentes.
- Portabilidad: el gráfico de flujo de datos es una representación independiente del idioma del código en su modelo. Puede crear un gráfico de flujo de datos en Python, almacenarlo en un SavedModel y restaurarlo en un programa de C++ para la inferencia de baja latencia.
[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column][vc_column_text]
¿Que es una Session?
Hay mucha confusión sobre las reglas de tf.Graph y tf.Session en TensorFlow. Es simple:
- Una gráfica define el cálculo. No calcula nada, no contiene ningún valor, solo define las operaciones que específico en su código.
- Una session permite ejecutar gráficos o partes de gráficos. Asigna recursos (en una o más máquinas) para eso y mantiene los valores reales de los resultados intermedios y las variables.
Un objeto Session encapsula el entorno en el que se ejecutan los objetos Operation, y se evalúan los objetos Tensor. Lo que significa que ninguno de los operadores y variables definidas en la parte de definición de gráfico se están ejecutando. Hasta que la sesión se ejecute.
Este artículo continua en Un vistado al uso de TensorFlow (II).
Este artículo se encuentra basado en TensorFlow in a nutshell[/vc_column_text][/vc_column][/vc_row]
Pingback: Un vistazo al uso de TensorFlow (II)