Python es uno de los lenguajes más utilizados. Tiene abundantes librerías y frameworks, específicos para Data Science.
Vamos a realizar un breve análisis de los principales “frameworks”: Pytorch, Keras y Tensorflow. Estos “frameworks” permiten desarrollar, con poco código, modelos complejos.
KERAS
Keras fue desarrollado 2015 por un investigador de Google. Este “framework” es muy popular y está inspirado, en gran medida, en scikit-learn. Keras, que es muy fácil de usar, pero carecía de alguna funcionalidad para los modelos avanzados. Por esa razón, meses después de Keras, Google publicó TensorFlow.
TENSORFLOW
Rápidamente se convirtió en un “framework” de referencia de Deep Learning. Nos permite utilizar Keras, lo cual le da cierta ventaja sobre otros entornos. Tensorflow dispone de funcionalidades de aprendizaje profundo, especialmente para redes neuronales complejas.
Sin embargo, Tensorflow aunque daba acceso a esas funciones, era muy complicado para principiantes. Las actualizaciones de estos “frameworks “han aproximado sus modos de funcionamiento; Tensorflow utiliza muchas de las API de Keras, es decir ambas funcionan conjuntamente.
PYTORCH
PyTorch es un “framework” de código abierto. Nos permite acelerar los desarrollos de “Machine Learning”. PyTorch desarrollado en 2016 por Facebook en “open source”. En 2018 se fusionó con Caffe2 (otro framework de Python) y mejoró mucho el rendimiento; especialmente en rapidez de ejecución.
PyTorch resuelve los problemas de Keras y Tensorflow: es fácil de personalizar y permite crear redes avanzadas y novedosas. Bajo mi punto de vista PyTorch, tiene ventajas en cuanto a rapidez y flexibilidad por lo que voy a analizar algunas de esas ventajas.
VENTAJAS DE PYTORCH
- En PYTORCH los datos se representan en forma de matrices multidimensionales, que a la nomenclatura son los llamados “tensores”. Estas estructuras matriciales, los “tensores”, almacenan las entradas, parámetros y salidas de la red neuronal. Utilizando “tensores” se puede entrenar la red. Pytorch tiene la ventaja de crear gráficos dinámicos con los datos de los “tensores”. También, permite realizar modificaciones entre conexiones. Al efectuar predicciones y estimar las tasas de error, el ajuste de “tensores”, hace que las predicciones sean más precisas.
- PyTorch tiene funcionalidades que aceleran considerablemente los cálculos. Es un framework que nos permite usar cualquier Cloud.
- Esto es muy interesante, en especial cuando se usa Amazon SageMaker. Este servicio de AWS nos hace posible entrenar los modelos de forma muy sencilla. Otra ventaja de trabajar con AWS (Amazon Web Services) es que mediante TorchScript y TorchServe se acelera el camino del desarrollo hacia la producción. Las funcionalidades TorchServe y Torch Elastic permiten el despliegue de redes neuronales ya entrenadas y usar PyTorch en Kubernetes. El paquete Torchvision consta de conjuntos de datos, arquitecturas de modelos y transformaciones de imagen comunes para la visión. La lista de ecosistemas es enorme, esto da idea de su versatilidad.
En resumen, PyTorch y Python funcionan de una manera muy integrada y resulta muy fácil realizar código con PyTorch. Tiene una comunidad y un ecosistema muy activo y su documentación está muy bien organizada. La depuración es fácil y la creación de estructuras novedosas es muy intuitiva.
En nuestro máster de Programación Avanzada en Python para Hacking, Big Data y Machine Learning, estudiaremos el funcionamiento de las herramientas Keras y Tensorflow, específicamente en la asignatura de “Programación en Python para Machine Learning”
¡No te quedes con las ganas de aprender!