Cosas importantes que debe saber sobre Tensorflow 2.0



Las aplicaciones de Deep Learning han cambiado muchas cosas. Algunos que dan esperanza para un futuro más brillante, y otros que generan sospechas. Sin embargo, para los desarrolladores, el crecimiento de las aplicaciones de aprendizaje profundo los ha dejado más perplejos acerca de elegir el mejor entre tantos marcos de aprendizaje profundo que existen.

TensorFlow es uno de los marcos de aprendizaje profundo que viene a la mente. Es posiblemente el marco de aprendizaje profundo más popular que existe. Nada justifica mejor la afirmación que el hecho de que Tensorflow sea utilizado por personas como Uber, Nvidia, Gmail, entre otras grandes corporaciones, para desarrollar aplicaciones de aprendizaje profundo de última generación.

Pero en este momento, estoy en una búsqueda para descubrir si realmente es el mejor marco de aprendizaje profundo. O quizás encuentre lo que lo hace el mejor de todos los otros marcos contra los que compite.

Aquí está todo sobre TensorFlow 2.0


La mayoría de los desarrolladores y científicos de datos prefieren usar Python con TensorFlow. TensorFlow se ejecuta no solo en Windows, Linux y Mac, sino también en los sistemas operativos iOS y Android.

TF utiliza un gráfico de cálculo estático para las operaciones. Esto significa que los desarrolladores primero definen el gráfico, ejecutan todos los cálculos, realizan cambios en la arquitectura si es necesario y luego vuelven a entrenar el modelo. En general, muchos conceptos de aprendizaje automático y aprendizaje profundo pueden resolverse utilizando matrices multidimensionales. Esto es lo que hace Tensorflow 2.0 que ayuda a describir relaciones lineales entre objetos geométricos. Tensor es una unidad primitiva donde podemos aplicar operaciones matriciales de manera fácil y efectiva.

import tensorflow as TF const1 = TF.constant([[05,04,03], [05,04,03]]); const2 = TF.constant([[01,02,00], [01,02,00]]); result = TF.subtract(const1, const2); print(result) 

El resultado del código anterior se verá así:

 TF.Tensor([[04 02 03] [04 02 03]]) 

Como puede ver, he dado aquí dos constantes y he restado un valor del otro y obtuve un objeto Tensor restando dos valores. Además, con Tensorflow 2.0 no es necesario crear sesiones antes de ejecutar el código.

Una cosa que debe saber antes de trabajar con TensorFlow 2.0 es que tendrá que codificar mucho y no solo necesitará realizar operaciones aritméticas con TensorFlow. Se trata más de hacer una investigación de aprendizaje profundo, construir predictores de IA, clasificadores, modelos generativos, redes neuronales, etc. Claro, TF ayuda con esto último, pero las tareas importantes, como la definición de la arquitectura de la red neuronal, la definición de un volumen para los datos de salida y entrada, deben realizarse con un cuidadoso pensamiento humano.

La forma más rápida de entrenar estos modelos de IA es la unidad de procesamiento de tensor (TPU) introducida por Google en 2016. TPU maneja el tema del entrenamiento de redes neuronales de varias maneras.

Cuantización : es una herramienta poderosa que utiliza un número entero de 8 bits para calcular una predicción de red neuronal. Por ejemplo, cuando aplica la cuantización a un modelo de reconocimiento de imagen como Inception v3, lo comprimirá aproximadamente un cuarto del tamaño original de 91 MB a 23 MB.

Procesamiento en paralelo: el procesamiento en paralelo en la unidad multiplicadora de matriz es una forma bien conocida de mejorar el rendimiento de las operaciones de matriz grande a través del procesamiento de vectores. Las máquinas con soporte de procesamiento de vectores pueden procesar hasta cientos y miles de elementos de operaciones en un solo ciclo de reloj.

CISC : TPU funciona en un diseño CISC que se enfoca en implementar instrucciones de alto nivel que ejecutan tareas de alto nivel como multiplicar y agregar muchas veces, etc. TPU utiliza los siguientes recursos para realizar tareas complejas:

  • Unidad de multiplicador de matriz (MXU): 65,536 unidades de multiplicar y agregar de 8 bits para operaciones de matriz.
  • Unified Buffer (UB): 24 MB de SRAM que funciona como registros.
  • Unidad de activación (AU): funciones de activación cableadas.

Matriz sistólica : la matriz sistólica se basa en la nueva arquitectura de la MXU que también se llama el corazón de la TPU. La MXU lee el valor una vez, pero lo usa para muchas operaciones diferentes sin almacenarlo de nuevo en un registro. Reutiliza la entrada muchas veces para producir la salida. Este conjunto se llama sistólico porque los datos fluyen a través del chip en ondas de la misma manera que nuestro corazón bombea sangre. Mejora la flexibilidad operativa en la codificación y ofrece una tasa de densidad de operación mucho más alta.


Como puede ver, todos estos puntos importantes de TPU ayudan a analizar y manejar los datos de manera efectiva. Además de eso, proporciona conjuntos de datos TensorFlow que los desarrolladores pueden usar para capacitar algunas de las soluciones de inteligencia artificial diseñadas a medida y para futuros trabajos de investigación.

También según la última actualización, Cerebras Systems (una nueva compañía de inteligencia artificial) presenta el chip semiconductor más grande basado en el modelo TPU. En este chip, puede encontrar el procesador más grande jamás construido que esté diseñado para procesar, entrenar y manejar las aplicaciones de IA. El chip gigante es igual al tamaño de un iPad y tiene 1.2 Trillones de transistores.

Una de las mayores ventajas de TensorFlow sobre otros marcos de aprendizaje profundo es en términos de escalabilidad. A diferencia de otros frameworks como PyTorch, TensorFlow está diseñado para inferencia a gran escala y capacitación distribuida. Sin embargo, también se puede usar para experimentar con nuevos modelos de aprendizaje automático y optimización. Esta flexibilidad también permite a los desarrolladores implementar modelos de aprendizaje profundo en más de una CPU / GPU con TensorFlow.

Compatibilidad multiplataforma


TensorFlow 2.0 es compatible con todas las plataformas principales del sistema operativo, como Windows, Linux, macOS, iOS y Android. Además, Keras también se puede usar con TensorFlow como interfaz.

Escalabilidad de hardware


TensorFlow 2.0 se puede implementar en una amplia gama de máquinas de hardware, desde dispositivos celulares hasta computadoras a gran escala con configuraciones complejas. Se puede implementar en una gama de máquinas de hardware, como dispositivos celulares y computadoras con configuraciones complejas. Puede incorporar diferentes API para construir arquitecturas de aprendizaje profundo a escala, como CNN o RNN.

Visualización


El marco TensorFlow se basa en el cálculo de gráficos y proporciona una práctica herramienta de visualización para fines de capacitación. Esta herramienta de visualización, llamada TensorBoard, permite a los desarrolladores visualizar la construcción de una red neuronal, lo que a su vez facilita la visualización y la resolución de problemas.

Depuración


Tensorflow permite a los usuarios ejecutar las subpartes de un gráfico para la introducción y recuperación de datos discretos en el borde, lo que proporciona un método de depuración ordenado.

Capacidad dinámica de gráficos para una fácil implementación


TensorFlow utiliza una característica llamada "Ejecución ansiosa" que facilita la capacidad de gráficos dinámicos para una fácil implementación. Permite guardar el gráfico como un búfer de protocolo que luego podría implementarse en algo diferente de las infraestructuras de relación con Python, por ejemplo, Java.

¿Por qué TensorFlow seguirá creciendo?


TensorFlow tiene la tasa de crecimiento más rápida entre todos los demás marcos de aprendizaje profundo que existen en la actualidad. Tiene la mayor actividad de GitHub entre todos los demás repositorios en la sección de aprendizaje profundo, y el mayor número de inicios también.

En la encuesta anual de desarrolladores de Stack Overflow 2019, TensorFlow fue votado como el marco de aprendizaje profundo más popular, el segundo marco más popular, Torch / PyTorch estaba muy, muy lejos.

Estas estadísticas son suficientes para demostrar el dominio de TensorFlow. ¿Pero por cuánto tiempo sostendrá este crecimiento? ¿terminaría excediendo su popularidad actual? Con la introducción y la gran recepción de TensorFlow 2.0, este último parece posible.

Source: https://habr.com/ru/post/466833/


All Articles