lanzamiento destacado de la plataforma de aprendizaje automático , que proporciona implementaciones listas de varios algoritmos de aprendizaje profundo, una interfaz de programación simple para construir modelos en Python y una interfaz de bajo nivel para C++, permitiendo gestionar la construcción y ejecución de gráficos computacionales. El código del sistema está escrito en C++ y Python y bajo la licencia Apache.
La plataforma fue desarrollada originalmente por el equipo de Google Brain y se utiliza en los servicios de Google para el reconocimiento de voz, la identificación de rostros en fotos, la determinación de similitud de imágenes, la filtración de spam en Gmail, de noticias en Google News y la organización de traducciones con contexto. Los sistemas distribuidos de aprendizaje automático se pueden crear en hardware estándar, gracias al soporte incorporado en TensorFlow para distribuir cálculos entre múltiples CPU o GPU.
TensorFlow proporciona una biblioteca de algoritmos numéricos implementados a través de gráficos de flujo de datos (data flow graphs). Los nodos en dichos gráficos implementan operaciones matemáticas o puntos de entrada/salida, mientras que los bordes del gráfico representan arreglos de datos multidimensionales (tensores) que fluyen entre los nodos.
Los nodos pueden estar asignados a dispositivos de computación y ejecutarse de forma asíncrona, procesando en paralelo todos los tensores compatibles, lo que permite organizar el funcionamiento simultáneo de nodos en una red neuronal, similar a la activación simultánea de neuronas en el cerebro.
El enfoque principal en la preparación de la nueva versión fue la simplificación y facilidad de uso. :
- Para construir y entrenar modelos se ha propuesto una nueva API de alto nivel , que ofrece varias opciones de interfaz para construir modelos (Secuencial, Funcional, Subclaseo) con la posibilidad de su (sin compilación previa) y con un mecanismo de depuración sencillo;
- Se ha añadido la API para organizar de modelos con cambios mínimos en el código existente. Además de la capacidad para distribuir cálculos en , hay soporte experimental para distribuir el proceso de entrenamiento en varios manejadores independientes y la posibilidad de utilizar unidades de procesamiento de tensores (tensor processing unit);
- En lugar de un modelo declarativo para construir gráficos y ejecutarlos a través de tf.Session, se ofrece la posibilidad de escribir funciones normales en Python, que mediante la llamada a tf.function pueden ser convertidas en gráficos y luego ejecutadas de forma remota, serializadas u optimizadas para mejorar el rendimiento;
- Se añadió un traductor , que convierte el flujo de comandos de Python en expresiones de TensorFlow, lo que permite usar código en Python dentro de funciones decoradas con tf.function, tf.data, tf.distribute y tf.keras;
- En SavedModel, se unificó el formato de intercambio de modelos y se añadió soporte para guardar y restaurar el estado de los modelos. Los modelos construidos para TensorFlow ahora pueden ser utilizados en (en dispositivos móviles), (en el navegador o Node.js), y ;
- Se unificaron las API tf.train.Optimizers y tf.keras.Optimizers; en lugar de compute_gradients para calcular gradientes, se propuso una nueva clase ;
- Se incrementó significativamente el rendimiento al usar GPU.
La velocidad de entrenamiento de modelos en sistemas con GPU NVIDIA Volta y Turing aumentó hasta tres veces; - una gran limpieza de la API, muchas llamadas fueron renombradas o eliminadas, se descontinuó el soporte para variables globales en métodos auxiliares. En lugar de tf.app, tf.flags, tf.logging, se propuso una nueva API absl-py. Para continuar usando la antigua API, se preparó el módulo compat.v1.
Fuente: opennet.ru
