PyTorch es un framework de Machine Learning de código abierto creado para ser flexible y modular para la investigación, con la estabilidad y el soporte necesarios para el despliegue de producción. PyTorch proporciona un paquete de Python para funciones de alto nivel como el cálculo de tensor (como NumPy) con una fuerte aceleración de GPU y TorchScript para una transición fácil entre el modo «eager» y el modo gráfico. Con la última versión de PyTorch, el framework proporciona ejecución basada en gráficos, capacitación distribuida, implementación móvil y cuantización. La sencillez de su interfaz, y su capacidad para ejecutarse en GPUs (lo que acelera el entrenamiento de los modelos), lo convierten en la opción más asequible para crear redes neuronales artificiales.
[Tweet «PyTorch es un framework de #MachineLearning de #opensource basado en Python, ¿quieres saber más?»]
Originalmente desarrollado por Facebook AI Research, PyTorch ha sido a su vez una pieza fundamental en el desarrollo de relevantes aplicaciones de Inteligencia Artificial, como el Autopilot de Tesla y el Pyro de Uber. Gracias a su facilidad de uso, PyTorch se ha convertido en uno de los frameworks de Deep Learning más populares del mundo, al que sólo hacen sombra Tensorflow y Keras, ambos respaldados por el patrocinio de Google. En este artículo (en inglés), puedes descubrir las diferencias entre PyTorch y TensorFlow.
¿Por qué PyTorch es el framework de Deep Learning del futuro?
A continuación, te exponemos las diez razones por las que PyTorch es uno de los framework de aprendizaje profucndo más populares a nivel mundial:
1. Python es uno de los lenguajes de programación más populares utilizados por los científicos de datos, para construir modelos de Machine Learning. PyTorch está diseñado para integrarse perfectamente con Python y sus bibliotecas populares como NumPy.
2. Fácil de aprender. PyTorch es más fácil de aprender que otros frameworks de Deep Learning. Esto se debe a que su sintaxis y aplicación son similares a muchos lenguajes de programación convencionales como Python.La documentación de PyTorch también es muy organizada y útil para principiantes. Más adelante os mostraremos recursos para aprender PyTorch.
3. Mayor productividad del desarrollador. PyTorch es muy simple de usar, lo que también significa que la curva de aprendizaje para los desarrolladores es relativamente corta. PyTorch tiene una interfaz Python simple y proporciona una API simple pero potente. PyTorch también se puede implementar fácilmente en Windows y Linux.
4. Debugging (depuración) fácil. Como PyTorch está profundamente integrado con Python, muchas herramientas de depuración de Python también se pueden usar en el código PyTorch. Específicamente, las herramientas pdb e ipdb de Python se pueden usar para este tipo de depuración en PyTorch.
[Tweet «Descubre por qué PyTorch es uno de los frameworks más populares a nivel mundial #redeneuronales #machinelearning»]
5. Data Parallelism. PyTorch tiene una característica muy útil conocida como paralelismo de datos. Con esta función, PyTorch puede distribuir el trabajo computacional entre múltiples núcleos de CPU o GPU
6. Support de gráfico dinámico. PyTorch admite gráficos computacionales dinámicos, lo que significa que el comportamiento de la red se puede cambiar mediante programación en tiempo de ejecución. Esto facilita una optimización de modelo más eficiente y le da a PyTorch una gran ventaja sobre otros frameworks de aprendizaje automático, que tratan las redes neuronales como objetos estáticos. Con este enfoque dinámico, podemos ver todos y cada uno de los cálculos y saber exactamente lo que está sucediendo. Cuando el flujo de datos y las operaciones correspondientes se definen en tiempo de ejecución, la construcción del gráfico computacional ocurre dinámicamente. Esto se hace con la ayuda de la clase de autogrado implícitamente.
7. PyTorch también proporciona un nuevo front-end híbrido. Esto significa que tenemos dos modos de operación, a saber, el modo «eager» y el modo gráfico. Generalmente utilizamos el modo «eager» para la investigación y el desarrollo, ya que este modo proporciona flexibilidad y facilidad de uso. Y generalmente utilizamos el modo gráfico para la producción, ya que esto proporciona una mejor velocidad, optimización y funcionalidad en un entorno de tiempo de ejecución C ++.
8. Bibliotecas útiles. Una gran comunidad de desarrolladores ha creado muchas herramientas y bibliotecas para extender PyTorch. La comunidad también está apoyando el desarrollo en visión por computadora, aprendizaje de refuerzo y mucho más.
9. PyTorch tiene soporte nativo de ONNX y puede exportar modelos en el formato estándar de intercambio de red neuronal abierta. Esto permitirá que los modelos basados en PyTorch accedan directamente a las plataformas y tiempos de ejecución compatibles con ONNX.
10. PyTorch también es bien recibido por las principales plataformas en la nube, lo que permite a los desarrolladores e ingenieros realizar trabajos de capacitación a gran escala en GPU con PyTorch. El soporte en la nube de PyTorch también proporciona la capacidad de ejecutar modelos en un entorno de producción.
Recursos para aprender PyTorch
Gracias a Internet, podemos acceder a un gran numero de recursos gratuitos para aprender PyTorch. La propia web de PyTorch ofrece una serie de herramientas -en inglés- como son:
- La guía de referencia de la API: https://pytorch.org/docs/stable/index.html
- Videotutoriales de 60 minutos: https://pytorch.org/tutorials/beginner/deep_learning_60min_blitz.html
- Tutoriales: https://pytorch.org/tutorials/
- Recetas de ejemplos de códigos: https://pytorch.org/tutorials/recipes/recipes_index.html
- Manual: Deep Learning with PyTorch
Sin embargo si necesitas mejor videotutoriales en español, existe el canal de YouTube Not CSV el cual posee una interesante introducción a PyTorch dividida en dos vídeos de una hora cada uno.
Por otro lado, existen otros recursos formativos muy útiles fuera de la web de PyTorch como:
- El curso «Intro to Deep Learning with PyTorch«, ofrecido por Facebook Artificial Intelligence a través de Udacity: gratuito, de nivel ‘intermedio’ y pensado para ser cursado en dos meses
- «PyTorch Basics for Machine Learning» y «Deep Learning with Python and PyTorch«, dos cursos consecutivos ofrecidos por IBM en la plataforma edX, también gratuitos.
- Y la plataforma de cursos Fast.AI, que ofrece un total de cinco cursos todos ellos basados en el uso de PyTorch.
0 comentarios