TensorFlow vs Theano vs Torch vs Keras: Biblioteca de aprendizaje profundo

La inteligencia artificial está ganando popularidad desde 2016 con el 20% de las grandes empresas que utilizan IA en sus negocios (informe McKinsey, 2018). Según el mismo informe, la IA puede crear un valor sustancial en todas las industrias. En la banca, por ejemplo, el potencial de la IA se estima en $ 300 mil millones, en el comercio minorista el número se dispara a $ 600 mil millones.

Para desbloquear el valor potencial de la IA, las empresas deben elegir el marco de aprendizaje profundo adecuado. En este tutorial conocerás las distintas librerías disponibles para realizar tareas de deep learning. Algunas bibliotecas han existido durante años, mientras que una nueva biblioteca como TensorFlow ha salido a la luz en los últimos años.

8 mejores bibliotecas / marco de aprendizaje profundo

En esta lista, compararemos los principales marcos de aprendizaje profundo. Todos ellos son de código abierto y populares en la comunidad de científicos de datos. También compararemos ML populares como proveedores de servicios

Antorcha

Torch es una antigua biblioteca de aprendizaje automático de código abierto. Se lanzó por primera vez hace 15 años. Su principal lenguaje de programación es LUA, pero tiene una implementación en C. Comparando PyTorch vs TensorFlow, es compatible con una amplia biblioteca para algoritmos de aprendizaje automático, incluido el aprendizaje profundo. Es compatible con la implementación de CUDA para el cálculo paralelo.

La herramienta de aprendizaje profundo Torch es utilizada por la mayoría de los laboratorios líderes como Facebook, Google, Twitter, Nvidia, etc. Torch tiene una biblioteca en Python con los nombres Pytorch.

Infer.net

Infer.net es desarrollado y mantenido por Microsoft. Infer.net es una biblioteca con un enfoque principal en la estadística bayesiana. Infer.net es una herramienta de visualización para Deep Learning diseñada para ofrecer a los profesionales algoritmos de última generación para el modelado probabilístico. La biblioteca contiene herramientas analíticas como análisis bayesiano, cadena de Markov oculta, agrupamiento.

Keras

Keras es un marco de Python para el aprendizaje profundo. Es una biblioteca conveniente para construir cualquier algoritmo de aprendizaje profundo. La ventaja de Keras es que usa el mismo código Python para ejecutarse en CPU o GPU. Además, el entorno de codificación es puro y permite entrenar algoritmos de última generación para visión por computadora, reconocimiento de texto, entre otros.

Keras ha sido desarrollado por François Chollet, investigador de Google. Keras se utiliza en organizaciones destacadas como CERN, Yelp, Square o Google, Netflix y Uber.

Theano

Theano es una biblioteca de aprendizaje profundo desarrollada por la Université de Montréal en 2007. Comparando Theano con TensorFlow, ofrece un cálculo rápido y se puede ejecutar tanto en CPU como en GPU. Theano ha sido desarrollado para entrenar algoritmos de redes neuronales profundas.

Kit de herramientas cognitivas de Microsoft (CNTK)

El kit de herramientas de Microsoft, anteriormente conocido como CNTK, es una biblioteca de aprendizaje profundo desarrollada por Microsoft. Según Microsoft, la biblioteca se encuentra entre las más rápidas del mercado. El kit de herramientas de Microsoft es una biblioteca de código abierto, aunque Microsoft lo está utilizando ampliamente para su producto como Skype, Cortana, Bing y Xbox. El kit de herramientas está disponible tanto en Python como en C ++.

MXNet

MXnet es una biblioteca de aprendizaje profundo reciente. Es accesible con múltiples lenguajes de programación, incluidos C ++, Julia, Python y R. MXNet se puede configurar para funcionar tanto en CPU como en GPU. MXNet incluye una arquitectura de aprendizaje profundo de última generación, como la red neuronal convolucional y la memoria a corto plazo. MXNet está diseñado para funcionar en armonía con la infraestructura de nube dinámica. El principal usuario de MXNet es Amazon

Caffe

Caffe es una biblioteca construida por Yangqing Jia cuando era estudiante de doctorado en Berkeley. Al comparar Caffe con TensorFlow, Caffe está escrito en C ++ y puede realizar cálculos tanto en la CPU como en la GPU. Los usos principales de Caffe es la red neuronal convolucional. Aunque, en 2017, Facebook amplió Caffe con una arquitectura de aprendizaje más profundo, incluida la red neuronal recurrente. Caffe es utilizado por académicos y nuevas empresas, pero también por algunas grandes empresas como Yahoo !.

TensorFlow

TensorFlow es un proyecto de código abierto de Google. TensorFlow es la biblioteca de aprendizaje profundo más famosa en estos días. Fue lanzado al público a finales de 2015.

TensorFlow está desarrollado en C ++ y tiene una conveniente API de Python, aunque las API de C ++ también están disponibles. Empresas destacadas como Airbus, Google, IBM, etc., están utilizando TensorFlow para producir algoritmos de aprendizaje profundo.

TensorFlow Vs Theano Vs Torch Vs Keras Vs infer.net Vs CNTK Vs MXNet Vs Caffe: Diferencias clave

Biblioteca Plataforma Escrito en Soporte Cuda Ejecución paralela Tiene modelos entrenados RNN CNN
Antorcha Linux, MacOS, Windows Lua
Infer.Net Linux, MacOS, Windows Estudio visual No No No No No
Keras Linux, MacOS, Windows Pitón
Theano Multiplataforma Pitón
TensorFlow Linux, MacOS, Windows, Android C ++, Python, CUDA
KIT DE HERRAMIENTAS COGNITIVAS DE MICROSOFT Linux, Windows, Mac con Docker C ++
Caffe Linux, MacOS, Windows C ++
MXNet Linux, Windows, MacOs, Android, iOS, Javascript C ++

Veredicto:

TensorFlow es la mejor biblioteca de todas porque está diseñada para ser accesible para todos. La biblioteca de Tensorflow incorpora diferentes API para construir una arquitectura de aprendizaje profundo a escala como CNN o RNN. TensorFlow se basa en el cálculo de gráficos y permite al desarrollador visualizar la construcción de la red neuronal con Tensorboad. Esta herramienta es útil para depurar el programa. Finalmente, Tensorflow está diseñado para implementarse a escala. Funciona con CPU y GPU.

Tensorflow atrae la mayor popularidad en GitHub en comparación con las otras bibliotecas de aprendizaje profundo.

Comparación del aprendizaje automático como servicio

A continuación se muestran 4 DL populares como proveedores de servicios

Google Cloud ML

Google proporciona un modelo previamente capacitado para desarrolladores disponible en Cloud AutoML. Esta solución existe para un desarrollador sin una sólida formación en aprendizaje automático. Los desarrolladores pueden utilizar el modelo pre-entrenado de Google de última generación en sus datos. Permite a cualquier desarrollador capacitar y evaluar cualquier modelo en solo unos minutos.

Actualmente, Google proporciona una API REST para visión por computadora, reconocimiento de voz, traducción y PNL.

Con Google Cloud, puede entrenar un marco de aprendizaje automático basado en TensorFlow, Scikit-learn, XGBoost o Keras. El aprendizaje automático de Google Cloud entrenará los modelos en su nube.

La ventaja de utilizar la computación en la nube de Google es la simplicidad de implementar el aprendizaje automático en producción. No es necesario configurar el contenedor Docker. Además, la nube se encarga de la infraestructura. Sabe cómo asignar recursos con CPU, GPU y TPU. Hace que el entrenamiento sea más rápido con el cálculo en paralelo.

AWS SageMaker

Un competidor importante de Google Cloud es la nube de Amazon, AWS. Amazon ha desarrollado Amazon SageMaker para permitir a los científicos y desarrolladores de datos construir, entrenar y poner en producción cualquier modelo de aprendizaje automático.

SageMaker está disponible en un Jupyter Notebook e incluye la biblioteca de aprendizaje automático más utilizada, TensorFlow, MXNet, Scikit-learn, entre otras. Los programas escritos con SageMaker se ejecutan automáticamente en los contenedores de Docker. Amazon maneja la asignación de recursos para optimizar el entrenamiento y la implementación.

Amazon proporciona API a los desarrolladores para agregar inteligencia a sus aplicaciones. En algunas ocasiones, no hay necesidad de reinventar la rueda construyendo desde cero nuevos modelos mientras existen poderosos modelos previamente entrenados en la nube. Amazon proporciona servicios de API para visión por computadora, chatbots conversacionales y servicios de lenguaje:

Las tres API principales disponibles son:

  • Amazon Rekognition: proporciona reconocimiento de imagen y video a una aplicación
  • Amazon Comprehend: realice minería de texto y procesamiento de lenguaje neuronal para, por ejemplo, automatizar el proceso de verificación de la legalidad de un documento financiero
  • Amazon Lex: agregar chatbot a una aplicación

Estudio de aprendizaje automático de Azure

Probablemente uno de los enfoques más amigables para el aprendizaje automático es Azure Machine Learning Studio. La ventaja significativa de esta solución es que no se requieren conocimientos previos de programación.

Microsoft Azure Machine Learning Studio es una herramienta colaborativa de arrastrar y soltar para crear, entrenar, evaluar e implementar una solución de aprendizaje automático. El modelo se puede implementar de manera eficiente como servicios web y usarse en varias aplicaciones como Excel.

La interfaz de Azure Machine Learning es interactiva, lo que permite al usuario crear un modelo simplemente arrastrando y soltando elementos rápidamente.

Cuando el modelo está listo, el desarrollador puede guardarlo y enviarlo a Azure Gallery o Azure Marketplace.

El aprendizaje automático de Azure se puede integrar en R o Python, su paquete integrado personalizado.

IBM Watson ML

Watson Studio puede simplificar los proyectos de datos con un proceso optimizado que permite extraer valor y conocimientos de los datos para ayudar a la empresa a volverse más inteligente y rápida. Watson Studio ofrece un entorno de aprendizaje automático y ciencia de datos colaborativos y fácil de usar para crear y entrenar modelos, preparar y analizar datos y compartir conocimientos, todo en un solo lugar. Watson Studio es fácil de usar con un código de arrastrar y soltar.

Watson Studio es compatible con algunos de los marcos más populares como Tensorflow, Keras, Pytorch, Caffe y puede implementar un algoritmo de aprendizaje profundo en las últimas GPU de Nvidia para ayudar a acelerar el modelado.

Veredicto:

Desde nuestro punto de vista, la solución en la nube de Google es la más recomendada. La solución en la nube de Google ofrece precios más bajos que AWS en al menos un 30% para el almacenamiento de datos y la solución de aprendizaje automático. Google está haciendo un excelente trabajo para democratizar la IA. Ha desarrollado un lenguaje de código abierto, TensorFlow, conexión de almacenamiento de datos optimizada, proporciona herramientas tremendas desde visualización de datos, análisis de datos hasta aprendizaje automático. Además, Google Console es ergonómica y mucho más completa que AWS o Windows.

Articulos interesantes...