Requisito previo: Introducción a TensorFlow
TensorFlow es una plataforma integral de código abierto para el aprendizaje automático desarrollada por Google con muchos colaboradores entusiastas de código abierto. TensorFlow es escalable y flexible para ejecutarse en centros de datos y teléfonos móviles. Puede ejecutarse tanto en una sola máquina como en varias máquinas en un entorno distribuido. En este artículo, exploraremos el secreto detrás de esta extrema flexibilidad y escalabilidad de TensorFlow.
Modelo de programación y conceptos básicos:
Cada cálculo en TensorFlow describe un gráfico dirigido que se compone de Nodes y bordes donde los Nodes son operaciones/funciones y los bordes son desbordamientos de entrada y salida y esas funciones.
- Las entradas/salidas en TensorFlow se denominan Tensor. Tensor no es más que una array multidimensional para la cual el tipo de elemento subyacente se especifica en el momento de la construcción del gráfico.
- El programa cliente que usa TensorFlow genera gráficos de flujo de datos usando lenguajes de programación aprobados (C o Python).
- Una operación es una función que tiene un nombre y representa un cálculo abstracto. Una operación puede tener atributos que deben generarse y entregarse en el momento de la construcción del gráfico.
- Una aplicación frecuente de atributos es fabricar operaciones polimórficas.
- El kernel es la implementación de una operación en un dispositivo específico.
- El programa cliente interactúa con el flujo de entrada del sistema TensorFlow mediante la creación de sesiones. La interfaz de sesión tiene estilos extendidos para generar un gráfico de cálculo y su método de ejecución de refuerzo() que calcula la salida del Node individual en el gráfico de enjuiciamiento al proporcionar las entradas necesarias.
- En la mayoría de las tareas de aprendizaje automático, los gráficos de cómputo implementados se multiplican veces y la mayoría de los tensores comunes no sobreviven después de una ejecución independiente, es por eso que TensorFlow tiene variables.
- Variable es un tipo especial de operación que devuelve un identificador a un tensor variable que puede sobrevivir durante múltiples procesos del gráfico.
- Parámetros entrenables como pesos, sesgos se depositan en tensores retenidos en variables.
Arquitectura de alto nivel
- La primera capa de TensorFlow consiste en la capa de dispositivo y la capa de red. La capa de dispositivo contiene la implementación para comunicarse con los diversos dispositivos como GPU, CPU, TPU en el sistema operativo donde se ejecutará TensorFlow. Mientras que la capa de red tiene implementaciones para comunicarse con diferentes máquinas que utilizan diferentes protocolos de red en la configuración Distributable Trainable.
- La segunda capa de TensorFlow contiene implementaciones de kernel para aplicaciones que se usan principalmente en el aprendizaje automático.
- La tercera capa de TensorFlow consta de ejecutores maestros y de flujo de datos distribuidos. Distributed Master tiene la capacidad de distribuir cargas de trabajo a diferentes dispositivos en el sistema. Mientras que el ejecutor de flujo de datos realiza el gráfico de flujo de datos de manera óptima.
- La siguiente capa expone todas las funcionalidades en forma de API que se implementa en lenguaje C. Se elige el lenguaje C porque es rápido, confiable y puede ejecutarse en cualquier sistema operativo.
- La quinta capa proporciona soporte para clientes de Python y C++.
- Y la última capa de TensorFlow contiene bibliotecas de entrenamiento e inferencia implementadas en python y C++.
Publicación traducida automáticamente
Artículo escrito por tanushree7252 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA