Deep Learning Academy · Lezione

Modalità train ed eval

Scopra perché model.train() e model.eval() sono diversi

Lezione 4 di 413 passaggi

Modalità train ed eval è una lezione Deep Learning Academy gratuita su CoddyKit. Questa è la lezione 4 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.

Un modello ha due volti

La rete si comporta diversamente durante l'apprendimento e durante la valutazione. PyTorch chiama questi due stati modalità train e modalità eval. 🎭

Passare alla modalità train

Prima dell'addestramento chiami model.train. In questo modo indica a ogni layer di comportarsi come previsto mentre il modello impara attivamente dai dati.

model.train()

Passare alla modalità eval

Prima di validare o fare previsioni chiami model.eval. La rete passa così al suo comportamento stabile e deterministico, per una misurazione affidabile.

model.eval()

Il dropout fa la differenza

Dropout azzera casualmente alcuni neuroni durante l'addestramento per evitare l'overfitting. In modalità eval si disattiva completamente, così ogni neurone contribuisce alla predizione.

Anche Batch Norm conta

Batch norm usa le statistiche di ogni batch durante l'addestramento, ma in modalità eval passa alle medie mobili memorizzate per produrre output stabili e coerenti.

È solo un interruttore

Queste chiamate, da sole, non eseguono né l'addestramento né il test. Si limitano a cambiare un flag che indica ai layer di dropout e di normalizzazione quale comportamento usare.

eval non è no_grad

Un errore comune: eval modifica il comportamento dei layer, mentre no_grad interrompe il tracciamento dei gradienti. Risolvono problemi diversi, quindi di solito si usano entrambi.

model.eval()
with torch.no_grad():
    pred = model(x)

Dimenticare eval danneggia

Se esegue la validazione senza eval, dropout e batch norm mantengono il comportamento di addestramento. I punteggi diventano rumorosi e sembrano peggiori di quanto il modello sia realmente.

Dimenticare train danneggia

Anche il contrario è problematico: se lascia il modello in modalità eval, dropout non si attiva mai e la sua regularization scompare silenziosamente durante l'addestramento.

Lo integri nel ciclo

Trasformi il cambio di modalità in un'abitudine: imposti train prima del passaggio di addestramento ed eval prima della validazione, a ogni epoca, così il modello non rimane mai nella modalità sbagliata.

for epoch in range(epochs):
    model.train()
    # ... train ...
    model.eval()
    # ... validate ...

Una piccola chiamata, un grande effetto

Sono due chiamate minuscole, eppure decidono se le metriche sono affidabili. Consideri il cambio di mode una parte obbligatoria di ogni ciclo.

Controllo rapido

Che cosa cambia effettivamente chiamando model.eval()?

Riepilogo

Ha imparato le due modalità: train attiva il dropout e le statistiche dei batch, mentre eval le rende deterministiche. Cambi modalità a ogni epoca e abbini eval a no_grad. 🎉

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 «Modalità train ed eval» è gratuita?

Sì — il testo completo di «Modalità train ed eval» è 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 «Modalità train ed eval»?

Scopra perché model.train() e model.eval() sono diversi 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 4 di 4.

Quanto tempo richiede la lezione «Modalità train ed eval»?

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. Forward pass, loss, backward e step
  2. Scriva un ciclo di addestramento minimo
  3. Tenga traccia dell'accuratezza durante l'addestramento
  4. Modalità train ed eval
← Torna a Deep Learning Academy