Hoy, se ha anunciado que la versión final de TensorFlow 2.0 ya está disponible.
TensorFlow es un ecosistema propuesto por Google que se ha convertido en el entorno más popular para desarrolladores de aplicaciones que requieran Deep Learning. Desde su lanzamiento inicial en 2015 por el equipo de Google Brain, el paquete cuenta con más de 41 millones de descargas y con más de 1800 contribuidores según datos del último TensorFlow Dev Summit2019, en el que se anunció la versión alfa de TensorFlow 2.0 completamente funcional.
Precisamente, los esfuerzos en la versión 2.0 han ido enfocados en facilitar y simplificar su uso, incorporando más APIs tanto para los programadores que se inician en estos temas como para los más expertos, facilitando la puesta en producción en cualquier plataforma de modelos de Machine Learninguna vez entrenados, ya sea en servidores, dispositivos móviles o en la web. En esta línea destaca TensorFlow Serving, una plataforma que facilita la puesta en producción de modelos entrenados en servidores a través de APIs habituales cómo REST.
Con TensorFlow 2.0 se ha impulsado a través de la librería TensorFlow Lite el despliegue de los algoritmos de forma local en dispositivos móviles (como Android o iOS) o integrados (como Raspberry Pi) permitiendo ejecutar modelos y hacer inferencias directamente sin necesidad de recurrir a la nube u otro sistema centralizado para ser procesados.
Sin duda Python ha sido y es el lenguaje principal en el ecosistema de TensorFlow (y en otras importantes plataformas equivalentes como PyTorch). Pero este ecosistema se ha abierto a otros lenguajes como JavaScript gracias a la incorporación de la librería TensorFlow.js, que permite ejecutar proyectos TensorFlow en el navegador web o en el backend(en lado del servidor) con Node.js, tanto modelos ya pre-entrenados como en construir entrenamientos.
Y en esta línea de hacer más portable e integrable TensorFlow en otras aplicaciones, en la versión 2.0 se ofrecen librerías para facilitar su integración con Swift, un lenguaje de programación compilado para aplicaciones iOS, y Linux que está ganando popularidad entre desarrolladores de aplicaciones dado que Swift fue construido pensando en el rendimiento y tiene una sintaxis simple, haciéndolo más rápido que Python. Creo que el despliege de TensorFlow en Swift ha hecho solo que despegar y le espera una rápida expansión en mi humilde opinión.
Para entornos de supercomputación y alto rendimiento, se puede usar la API Distribution Strategy y soporte a Multi-GPU para distribuir en entrenamiento con cambios mínimos en el código (aunque yo de momento me decanto por usar horovod) .
Y finalmente constatar que uno de los pilares de TensorFlow 2.0 es la integración más estrecha con Keras, que se ha convertido en la API de alto nivel para construir y entrenar sus modelos. Por ello, si te interesa adentrarte en este apasionante mundo de TensorFlow puedes hacerlo partiendo del libro de acceso abierto “Deep Learning, introducción práctica con Keras” (incluyendo en la segunda parte el código en TensorFlow 2.0).