Implementa y Entrena una CNN desde cero con PyTorch Lightning

Implementa y Entrena una CNN con PyTorch Lightning

Si no estás usando PyTorch Lightning, deberías darle una oportunidad.

La idea abstracta de PyTorch Lightning. De Marc Sendra Martorell.

Este artículo es una introducción suave a las Redes Neuronales Convolucionales (CNNs). Este artículo detalla por qué PyTorch Lightning es tan genial, luego realiza un breve recorrido teórico de los componentes de las CNN y luego describe la implementación de un bucle de entrenamiento para una arquitectura de CNN simple codificada desde cero utilizando la biblioteca PyTorch Lightning.

¿Por qué PyTorch Lightning?

PyTorch es una biblioteca flexible y fácil de usar. Si PyTorch es genial para la investigación, encontré que Lightning es aún mejor para la ingeniería. Las principales ventajas son:

  • Menos código. Cuando ejecutamos un proyecto de ML, muchas cosas pueden salir mal, por lo que es útil delegar el código de plantilla y centrarse en lo que es relevante para resolver mi problema específico. El uso de las funcionalidades incorporadas reduce la cantidad de código escrito y, por lo tanto, la probabilidad de errores. El tiempo de desarrollo (y depuración) se reduce.
  • Código bien estructurado.
  • Eficiencia y entrenamiento rápido. Lightning también permite utilizar todos los trucos de multiprocesamiento y paralelización (como DDP) de PyTorch sin tener que escribir una línea adicional de código.
  • Herramientas de desarrollo integradas como comprobaciones de integridad (para bucles de validación y entrenamiento, así como para la arquitectura del modelo), creación de un conjunto de datos de sobreajuste sobre la marcha, devolución anticipada, gestión de los mejores pesos, etc. Por ejemplo, https://lightning.ai/docs/pytorch/stable/debug/debugging_basic.html

Para obtener más razones oficiales por las que es genial, consulta allí.

En pocas palabras, cuando uso PyTorch Lightning, encuentro que es fácil de codificar, fácil de leer y fácil de depurar. Estas actividades son las que más tiempo me llevan como Ingeniero de Aprendizaje Automático. Además, la documentación está bien escrita y contiene muchos tutoriales, por lo que también es fácil de aprender.

Recordatorio de modelos CNN

LeNet es un buen punto de partida cuando se aprenden o se repasan arquitecturas de aprendizaje profundo para visión por computadora. LeNet fue la primera arquitectura exitosa de Red Neuronal Convolucional (CNN) diseñada por Yann LeCun et al. en 1998, diseñada para…