Razones para elegir PyTorch para el aprendizaje profundo

Nov 26 2020
PyTorch tiene mucho que ofrecer a los programadores de Deep Learning
Deep Learning y Machine Learning han sido las palabras más populares entre todos durante los últimos años, y hay una explicación perfecta para eso. El aprendizaje automático ha permitido que los sistemas aprendan de la experiencia, mientras que el aprendizaje profundo llevó el aprendizaje automático a una escala incluso masiva con el uso de conjuntos de datos expansivos.

Deep Learning y Machine Learning han sido las palabras más populares entre todos durante los últimos años, y hay una explicación perfecta para eso.

El aprendizaje automático ha permitido que los sistemas aprendan de la experiencia, mientras que el aprendizaje profundo llevó el aprendizaje automático a una escala incluso masiva con el uso de conjuntos de datos expansivos. Este impulso en ML y DL dio lugar a diversas lenguaje de programación s y bibliotecas que se acercó y activar programadores , investigadores y científicos de datos para lograr lo impensable. Algunos de los contendientes más fuertes para la mejor biblioteca de aprendizaje profundo son TensorFlow y PyTorch . Por ahora, nos centraremos más en PyTorch.

PyTorch

Facebook lanzó PyTorch para la escena de la programación en 2016 , que se basa en la biblioteca Torch de Lua .

PyTorch es una biblioteca de aprendizaje automático de código abierto y gratuita y actualmente se encuentra en v1.4 . PyTorch ha estado disponible durante casi tres años y ha pasado por muchas mejoras para estar en una mejor posición. PyTorch fue creado para sentirse más rápido y más Pythonic que el resto de la competencia. También incluye soporte para computación C, C ++ y Tensor .

Tendencias de Google: interés de PyTorch a lo largo del tiempo

Tendencias de Google (fuente)

Razones para elegir PyTorch para el aprendizaje profundo

Antes de pasar a las razones por las que no debería probar PyTorch, a continuación se muestran algunos de los proyectos y bibliotecas de aprendizaje profundo únicos y emocionantes a los que PyTorch ha ayudado a dar a luz:

CheXNet: detección de neumonía a nivel de radiólogo en radiografías de tórax con aprendizaje profundo.

Horizon: una plataforma para el aprendizaje por refuerzo aplicado (Applied RL)

PYRO : Pyro es un lenguaje de programación probabilístico universal (PPL) escrito en Python y compatible con PyTorch en el backend.

Kaolin de NVIDIA como biblioteca de PyTorch para acelerar el aprendizaje profundo 3D

TorchCV para implementar la visión por computadora en sus proyectos.

PyDLT como un conjunto de herramientas para el aprendizaje profundo

● la biblioteca fastai optimiza su proceso de entrenamiento de redes neuronales

y mucho más.

Estos son algunos marcos y proyectos que se crean sobre TensorFlow y PyTorch. Puede encontrar más en Github y los sitios web oficiales de TF y PyTorch.

En un mundo de TensorFlow , PyTorch es capaz de mantenerse por sí solo con sus puntos fuertes. A continuación, se muestran algunos de los aspectos más destacados que explican por qué PyTorch sería una opción adecuada para sus proyectos de aprendizaje profundo:

1. PyTorch es más pitónico

PyTorch es un marco de referencia que nos permite escribir código de una manera más pitónica . Además, el tipo de dinamismo que admite el uso de código Python ingenuo es notable.

PyTorch tiende a inclinarse más hacia Python en comparación con cualquier otra biblioteca. Es porque PyTorch es relativamente fácil de entender y se siente más natural , nativo y en línea con el código Python .
Cualquiera que haya trabajado con Python, se sentirá como en casa con todo con PyTorch, como funciones de pérdida, optimizadores, transformaciones, cargadores de datos y muchas más clases.

El código para cada ejemplo de PyTorch (Vision y NLP) comparte una estructura común:

Ejemplo de PyTorch (fuente)
Ejemplo de PyTorch (fuente)

2. Fácil de usar

En comparación con PyTorch, TensorFlow tiene una curva de aprendizaje relativamente más pronunciada. Los programadores de Python necesitarán menos tiempo para adaptarse a PyTorch, ya que para ellos probablemente se sentirá como una extensión del marco de Python. La depuración fácil y un gran conjunto de API simples juegan un papel fundamental para hacer que PyTorch sea más fácil de aprender para los programadores.

3. Bibliotecas útiles

Con un gran apoyo de la comunidad viene un gran entusiasmo y contribuciones hacia la comunidad. Usando PyTorch, los programadores han seguido adelante y han creado algunos proyectos que están disponibles para que cualquier interesado pueda echar un vistazo. A continuación, se muestra una lista combinada de algunos de estos proyectos en varios dominios, como la visión por computadora , el procesamiento del lenguaje natural y las bibliotecas generativas:

● pro_gan_pytorch para aprovechar las funciones de ProGAN

● BoTorch para usar optimizaciones bayesianas

● ParlAI para compartir, capacitar y probar modelos de diálogo

● OpenNMT-py para implementar el sistema de traducción automática neuronal

● MUSE para incrustaciones de palabras en varios idiomas

● skorch para fusionar el código scikit-learn con PyTorch

4. Paralelismo de datos sin esfuerzo

El paralelismo de datos en PyTorch es eficiente y le permite dividir los datos en lotes , que luego se envían a múltiples GPU para su procesamiento. Con esta técnica, PyTorch puede cambiar una parte significativa de la carga de trabajo de la CPU a la GPU. Para el paralelismo de datos , utiliza la clase torch.nn.DataParallel.

Distributed Data-Parallel es una función de PyTorch que puede combinar con Data-Parallel para manejar casos de uso que exigen grandes conjuntos de datos y modelos que son lo suficientemente grandes para una sola GPU. Cuando finalizan todas las tareas del grupo de GPU, Data-Parallel recopila, combina y envía el resultado.

Pytorch Data Parallel (fuente)

5. Excelente para investigadores

PyTorch es un regalo de Dios para los investigadores, ya que ha demostrado ser utilizado por al menos el 70% de los investigadores que trabajan en frameworks. A pesar de ser la opción líder en la industria para el desarrollo de aplicaciones, TensorFlow aún no ha alcanzado a PyTorch en este aspecto. Una razón detrás de esto podría ser la simplicidad y facilidad de uso que PyTorch tiene para ofrecer con un mejor rendimiento.

6. Listo para dispositivos móviles

A partir de la v1.3 , PyTorch ha agregado soporte para la implementación en dispositivos Android e iOS . La función trae todos los beneficios de PyTorch a los dispositivos de borde para atender las aplicaciones que exigen latencias más bajas. El objetivo detrás de PyTorch mobile es reducir el ciclo de desarrollo al admitir las API base para plataformas móviles, eliminando la necesidad de exportar a marcos móviles como Caffe2. Esto permite una reducción significativa de la huella en el dispositivo. También se ha agregado soporte para el ajuste preciso de los scripts de compilación para un mayor control.

Comience con PyTorch Mobile:

Empiece a utilizar Android

Empiece a utilizar iOS

7. Fácil depuración

PyTorch es tontamente fácil de depurar cuando tienes la opción de acceder a cada línea y la forma habitual de imprimir después de cada línea. La guinda del pastel es que los objetos y la operación en PyTorch contienen los datos reales y no las referencias simbólicas, lo que facilita la vida de los programadores. Algunos de los depuradores estándar de PyTorch son:

● ipdb

● pdb

● PyCharm

Digamos, por ejemplo, que puede usar la función "pdb.set_trace ()" de pdb para colocar puntos de interrupción en su código para profundizar en la raíz del error. Además, los gráficos computacionales dinámicos de PyTorch permiten modificaciones dinámicas y depuración rápida mientras se ejecuta su código.

Depuración de PyTorch con pdb (fuente)

8. Soporte para ONNX

Open Neural Network Exchange actúa como un ecosistema de código abierto para la Inteligencia Artificial al proporcionar un terreno común para que los programadores de IA trabajen indistintamente en una variedad de marcos, herramientas y bibliotecas. ONNX hace esto al proporcionar un formato de archivo estándar que funciona en múltiples marcos y hardware.

Cuando se trata de PyTorch, ONNX viene con soporte integrado para PyTorch y una amplia gama de otros marcos como Caffe2, MXNet, TensorFlow y más. ONNX facilita a los programadores de IA exportar y migrar sus modelos de PyTorch a un formato abierto que otros marcos pueden integrar.

Soporte ONNX nativo de PyTorch (fuente)

9. Soporte para gráficos computacionales dinámicos

Al ver cada modelo como un gráfico acíclico dirigido, PyTorch ofrece un enfoque dinámico para definir gráficos de cálculo. Mientras que otros marcos permiten una definición de gráfico estático, PyTorch admite la creación de un gráfico de cálculo dinámico en el que puede manipularlo sobre la marcha . Uno de los elementos que más se beneficia de este aspecto dinámico de PyTorch son las redes neuronales recurrentes, entre muchos otros.

10. Fuerte apoyo de la comunidad

PyTorch también ofrece un excelente apoyo a la comunidad . El hogar de PyTorch tiene documentación detallada sobre cada una de sus características. Todas las últimas actualizaciones de la biblioteca están bien explicadas. Con cada nueva incorporación, también se pueden encontrar tutoriales de apoyo y recursos relacionados para obtener esa valiosa sensación práctica.

PyTorch Forum es un lugar excelente y muy recomendado para que los novatos publiquen sus preguntas y los veteranos compartan sus ideas con otros programadores. Con más de cien publicaciones al día, la comunidad es bastante activa y anima a las personas a incorporarse a PyTorch.

Estos son algunos de los recursos , tutoriales y recursos de la comunidad de desarrolladores de PyTorch para contribuir, aprender y obtener respuestas a sus preguntas:

● Formulario de discusión de PyTorch

● Comunidad PyTorch Slack

● Ejemplos de PyTorch

● Documentos de PyTorch

● Tutoriales de Github Pytorch

● Hoja de referencia para principiantes de PyTorch

● Notas de la versión de PyTorch

● Aprendizaje profundo con Pytorch: un bombardeo de 60 minutos

● Uso de datos del tutorial de Google Drive en Colab

● Documentos y tutoriales en chino

● Tutoriales en coreano

Conclusión

Con una gran cantidad de funciones intuitivas para los programadores de aprendizaje profundo, PyTorch tiene mucho que ofrecer a las personas en una amplia gama de niveles de habilidad. A pesar de proporcionar un punto de entrada fácil, PyTorch no debe tomarse a la ligera, ya que ofrece características que no solo ofrecen un mejor rendimiento en ciertos aspectos, sino que también ofrecen características únicas adicionales. Discutimos algunas de las características de PyTorch de las que se habla más comúnmente para ayudarlo a dar ese salto a PyTorch sobre el que estaba tan escéptico.

Lecturas más interesantes -

¡Espero que este artículo te haya resultado útil! A continuación se muestran algunas lecturas interesantes, espero que también te gusten:

sobre el autor

Claire D . es un creador de contenido y comercializador en Digitalogy , un mercado de contratación de tecnología y emparejamiento personalizado que conecta a las personas con desarrolladores y diseñadores preseleccionados y de primer nivel en función de sus necesidades específicas en todo el mundo. Conéctese con Digitalogy en Linkedin , Twitter , Instagram .