Implementare e Allenare una CNN da Zero con PyTorch Lightning

Implementare e allenare una CNN con PyTorch Lightning

Se non stai utilizzando PyTorch Lightning, dovresti provarlo.

L'idea astratta di PyTorch Lightning. Da Marc Sendra Martorell.

Questo articolo è una gentile introduzione alle Reti Neurali Convoluzionali (CNN). In questo articolo si spiega perché PyTorch Lightning è così fantastico, quindi si fa una breve panoramica teorica dei componenti delle CNN e si descrive l’implementazione di un ciclo di addestramento per una semplice architettura di CNN codificata da zero utilizzando la libreria PyTorch Lightning.

Perché PyTorch Lightning?

PyTorch è una libreria flessibile e facile da usare. Se PyTorch è ottimo per la ricerca, ho trovato Lightning ancora migliore per l’ingegneria. I principali vantaggi sono:

  • Meno codice. Quando si esegue un progetto di apprendimento automatico, possono verificarsi molti problemi, pertanto è utile delegare il codice di base e concentrarsi su ciò che è rilevante per risolvere il problema specifico. Utilizzare le funzionalità incorporate riduce la quantità di codice scritto e quindi la probabilità di errori. Il tempo di sviluppo (e di debug) è ridotto.
  • Codice ben strutturato.
  • Efficienza e addestramento veloce. Lightning consente anche l’uso di tutti i trucchi di multiprocessing e lavoratori paralleli (come DDP) di PyTorch senza scrivere una riga extra di codice.
  • Strumenti di sviluppo integrati come controlli di coerenza (per cicli di convalida e addestramento, nonché per l’architettura del modello), creazione di set di dati di overfitting al volo, callback di interruzione anticipata, gestione dei migliori pesi, ecc. Ad esempio https://lightning.ai/docs/pytorch/stable/debug/debugging_basic.html

Per ulteriori motivi ufficiali per cui è fantastico, guarda là fuori.

In poche parole, quando uso PyTorch Lightning trovo che sia facile da codificare, facile da leggere e facile da debuggare. Queste attività costituiscono la maggior parte del mio tempo come Ingegnere di Apprendimento Automatico. Inoltre, la documentazione è ben scritta e contiene molti tutorial, quindi è anche facile da imparare.

Ripasso dei modelli CNN

LeNet è un buon punto di partenza per imparare o ripassare le architetture di apprendimento approfondito per la visione artificiale. LeNet è stata la prima architettura di rete neurale convoluzionale (CNN) di successo progettata da Yann LeCun et al. nel 1998, progettata per…