Deep Learning Academy · Lezione

Il forward salva, il backward riutilizza

Scopra perché le attivazioni vengono memorizzate durante il forward pass

Lezione 2 di 413 passaggi

Il forward salva, il backward riutilizza è una lezione Deep Learning Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Deep Learning Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Deep Learning Academy include 4 lezioni in totale.

Due passaggi, un obiettivo

L'addestramento di ogni batch esegue due passaggi: un passaggio forward per fare la predizione e calcolare la loss, poi un passaggio backward per calcolare i gradienti. Funzionano insieme.

Il passaggio forward calcola i valori

Nel passaggio in avanti, ogni layer trasforma il proprio input in un output e lo passa al successivo. Alla fine si ottengono una predizione e un unico valore di loss.

Il backward ha bisogno dei valori forward

Per calcolare il gradiente di un layer, la chain rule ha bisogno proprio delle activations prodotte da quel layer durante il passaggio in avanti. Questi valori sono indispensabili.

Per questo li memorizziamo

Durante il passaggio forward, la rete caches discretamente in memoria gli input e gli output di ogni layer, così il passaggio backward può recuperarli. 💾

Un esempio concreto

La derivata di un layer spesso riutilizza il suo stesso output. Per una sigmoid, il gradiente dipende dal valore di output salvato, quindi memorizzarlo evita di ricalcolarlo.

sigmoid_grad = saved_output * (1 - saved_output)

Il backward riutilizza la cache

Il passaggio backward percorre i layer al contrario e, in ognuno, recupera i valori cached corrispondenti da moltiplicare per il gradiente. Non viene ricalcolato nulla.

La cache consuma memoria

Memorizzare ogni activation è il motivo per cui l'addestramento di una rete profonda usa molta più memory rispetto alla semplice esecuzione di predizioni. Le reti più grandi hanno bisogno di cache più grandi.

L'inferenza salta la cache

Quando servono solo le predizioni, non c'è alcun passaggio backward, quindi PyTorch salta completamente la cache. Per questo l'inferenza richiede meno memoria.

with torch.no_grad():
    preds = model(x)

PyTorch lo fa per Lei

Ogni operazione su un tensore con requires_grad registra ciò di cui ha bisogno nel computation graph, costruendo automaticamente la cache durante l'esecuzione.

Un backward la libera

Per impostazione predefinita, chiamare backward() consuma il graph memorizzato e lo libera. Per questo un secondo backward() sullo stesso grafo genera un errore.

loss.backward()

Perché questa progettazione è efficace

Memorizzare i valori forward fa sì che ogni gradiente richieda solo un'operazione economica di lookup-and-multiply, invece di un nuovo ricalcolo, rendendo la retropropagazione rapida e precisa.

Controllo rapido

Verifichiamo l'idea della cache.

Riepilogo

Il passaggio forward caches le activations e il passaggio backward le riutilizza per costruire i gradienti. Questo scambio tra memoria e velocità rende pratica la retropropagazione. 💾

Gratis per iniziare

Impara Python con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
30
Lezioni
120

Domande Frequenti

La lezione «Il forward salva, il backward riutilizza» è gratuita?

Sì — il testo completo di «Il forward salva, il backward riutilizza» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Deep Learning Academy, passa a CoddyKit PRO. Il corso Deep Learning Academy include 4 lezioni in totale.

Cosa imparerò in «Il forward salva, il backward riutilizza»?

Scopra perché le attivazioni vengono memorizzate durante il forward pass Eserciti Deep Learning Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Deep Learning Academy?

Non è richiesta alcuna esperienza precedente. Deep Learning Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.

Quanto tempo richiede la lezione «Il forward salva, il backward riutilizza»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Deep Learning Academy?

Sì. Ogni lezione Deep Learning Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. La regola della catena, layer dopo layer
  2. Il forward salva, il backward riutilizza
  3. Faccia il backprop di una piccola rete a mano
  4. Gradienti evanescenti ed esplosivi
← Torna a Deep Learning Academy