Precisione mista con autocast e GradScaler
Calcoli a precisione dimezzata per grandi aumenti di velocità
Precisione mista con autocast e GradScaler è una lezione Deep Learning Academy gratuita su CoddyKit. Questa è la lezione 1 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.
Parti di questa lezione non sono ancora state tradotte e vengono mostrate in inglese.
What Mixed Precision Means
By default PyTorch does math in 32-bit floats. Mixed precision runs many operations in 16-bit instead, which is faster and uses far less memory.
Why Half Precision Is Faster
Modern GPUs have special tensor cores tuned for 16-bit math. Feeding them half-precision data can speed up training two or three times with little accuracy loss.
The Catch With 16-Bit
Half precision has a tiny range, so very small gradient values can round down to zero. That silent underflow stalls learning if you do nothing about it.
Meet autocast
Wrap your forward pass in autocast and PyTorch picks a safe precision per operation automatically. You never cast tensors by hand.
with torch.autocast(device_type='cuda'):
out = model(x)What autocast Wraps
Put only the forward pass and loss inside autocast. The backward call stays outside the block, where PyTorch handles precision for you.
with torch.autocast(device_type='cuda'):
out = model(x)
loss = loss_fn(out, y)Meet GradScaler
A GradScaler fixes underflow by multiplying the loss by a large factor before backward, so small gradients stay big enough to survive in 16-bit.
scaler = torch.cuda.amp.GradScaler()Scale the Loss
Instead of loss.backward(), call scaler.scale(loss).backward(). The scaler inflates the loss first so the resulting gradients do not vanish.
scaler.scale(loss).backward()Step Through the Scaler
Run the optimizer with scaler.step, which quietly unscales the gradients back to normal size before applying the update.
scaler.step(optimizer)Update the Scale Factor
Finish each step with scaler.update(). It grows the scale when things are stable and shrinks it if it ever spots an overflow.
scaler.update()The Full AMP Step
Together these calls form one clean AMP iteration: zero grads, autocast forward, scaled backward, scaler step, then update.
optimizer.zero_grad()
with torch.autocast(device_type='cuda'):
loss = loss_fn(model(x), y)
scaler.scale(loss).backward()
scaler.step(optimizer)
scaler.update()When To Reach For It
Mixed precision shines on a recent NVIDIA GPU with large batches. On a plain CPU it gives little benefit, so save it for real training runs.
Quick Check
You enabled autocast but tiny gradients keep vanishing. What tool fixes that?
Recap
Wrap the forward in autocast for fast 16-bit math, then use a GradScaler to scale, step, and update so tiny gradients survive. ⚡
Domande Frequenti
La lezione «Precisione mista con autocast e GradScaler» è gratuita?
Sì — il testo completo di «Precisione mista con autocast e GradScaler» è 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 «Precisione mista con autocast e GradScaler»?
Calcoli a precisione dimezzata per grandi aumenti di velocità 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 1 di 4.
Quanto tempo richiede la lezione «Precisione mista con autocast e GradScaler»?
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
- Precisione mista con autocast e GradScaler
- Accumulo dei gradienti per batch grandi
- Profilare il collo di bottiglia
- Ridurre l'uso della memoria della GPU