TensorFlow 2.0

TensorFlow es una biblioteca de código abierto para machine learning, desarollado por Google y liberado en noviembre del 2015.

¿Pero qué ventajas tenemos al usar un Framework de Deeplearning comparado con desarrollar nuestras redes neuronales desde cero?

Desarrollar una red neuronal desde cero no es difícil pero conlleva tiempo en definirla y sobretodo codificar las operaciones de backpropagation, sobretodo la implementación de las derivadas. En vez de usar nuestro tiempo para crear la rueda, ¿por qué no lo usamos para buscar mejores parámetros para tener la mejor rueda?

Las ventajas más importantes son:

  • No tener que implementar desde cero los conceptos báiscos.
  • Poder iterar de una forma más rápida con diferentes modelos e hiperparámetros.
  • No tener que definir la estructura de la Red neuronal y sus derivadas (Dataflow Graph).
  • Soporte para GPU.
  • Soporte de paralelismo y ejecución distribuida.
  • Soporte para multiples dispositivos y lenguajes de programación (IoT, embebidos y hasta el navegador)

TensorFlow y Keras

Nunca había sido tan fácil de crear un modelo de deeplearning hasta ahora, TensorFlow decidió incluir al Framework Keras dentro se su core, ahora importando import tensorflow as tf y podemos acceder a keras con tf.keras. Esto es increíble, primero porque estandariza el uso del mismo y lo segundo lo vuelve mucho más pythonico.

También si no queremos crear nuestro propio modelo, podemos usar TensorFlow Hub que es una librería aparte de TF que permite reusar muy fácil modelos que han sido probados y muy conocidos para resolver tus problemas de ML.

Soporte en otras plataformas

TensorFlow siempre ha estado interesado en proveer formas de exportar tu modelo a otros lenguajes y plataformas, siendo muy fácil de llevarlo a producción. En esta versión refuerzan esto con:

TensorFlow Serving: Permite usar nuestros modelos por protocolos como HTTP/REST y gRPC/Protocol Buffers

TensorFlow Lite: Convierte nuestro modelo a un modelo muy ligero y de poco consumo de procesamiento, para usarlo en sistemas operativos de celulares (Android y iOs) y dispositivos embebidos (Como raspberry Pi), además de poder acelerarlo con Coral y Edge TPUs.

TensorFlow.js: TensorFlow para JavaScript, básicamente porque JavaScript está en todas partes, podemos correrlo a nivel del navegador o también del lado del servidor con Node.js, también permite ser entrenado desde el lado del cliente en su propio navegador mejorando la privacidad de los datos porque nunca tendrán que salir del dispositivo del usuario.

Migrar de TF 1.x a 2.0

TensorFlow ha cambiado mucho y personalmente no solo cambió, sino que también mejoró sobre todo para los que quieran probarlo por primera vez y que no sea tan intimidante como antes, además si quieres llevar tu modelo a la versión 2.0 puedes usar su herramienta de migración que hará la mayor parte de manera automática pero existen ciertas funciones que tienes que migrarlo manualmente.

Les recomiendo mucho que prueben TensorFlow 2.0, que actualmente se encuentra en versión beta pero la ventaja es que es bastante amigable, lo que lo hace increíble y google también recomienda que empecemos a probarlo porque será el futuro de esta librería.

¿Cómo empezar con TensorFlow desde cero?

Les dejo un notebook donde detalla temas básicos de Deeplearning y como empezar con TF 2.0 en español: