Regole di broadcasting che evitano i cicli
Combini tensori di forme diverse elemento per elemento
Regole di broadcasting che evitano i cicli è una lezione Deep Learning Academy gratuita su CoddyKit. Questa è la lezione 3 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.
Combinare senza shape corrispondenti
Il broadcasting permette a PyTorch di estendere un tensore più piccolo per adattarlo a uno più grande, evitando di scrivere cicli per ripetere i valori.
Aggiungere uno scalare a tutto
Il broadcasting più semplice consiste nell'aggiungere un numero a un intero tensore. PyTorch lo applica a ogni elemento contemporaneamente. ✨
x = torch.tensor([1, 2, 3])
print(x + 10) # tensor([11, 12, 13])Confrontare le shape da destra a sinistra
Il broadcasting allinea le dimensioni partendo da destra. Poi controlla ogni coppia per stabilire se può combinarla.
Regola uno: le dimensioni uguali corrispondono
Due dimensioni sono compatibili quando sono uguali. Le dimensioni corrispondenti si allineano una a una senza bisogno di estensioni.
Regola due: la dimensione 1 si estende
Se una dimensione è 1, si espande per corrispondere all'altra. Quel singolo valore viene riutilizzato lungo tutto l'asse.
a = torch.tensor([[1], [2], [3]])
b = torch.tensor([10, 20])
print((a + b).shape) # torch.Size([3, 2])Le dimensioni mancanti valgono 1
Quando un tensore ha meno dimensioni, PyTorch lo completa aggiungendo uni iniziali. In questo modo un vettore può essere sottoposto a broadcasting con una matrice.
m = torch.ones(2, 3)
v = torch.tensor([1, 2, 3])
print((m + v).shape) # torch.Size([2, 3])Aggiungere un bias alle righe
Un uso classico consiste nell'aggiungere un bias di riga a ogni campione di un batch. Un piccolo vettore raggiunge gratuitamente ogni riga.
batch = torch.zeros(4, 3)
bias = torch.tensor([1.0, 2.0, 3.0])
print((batch + bias).shape) # torch.Size([4, 3])Normalizzare una colonna in una volta
Sottragga la media di ogni colonna usando il broadcasting e centri i dati in una sola riga, senza un loop sulle righe.
x = torch.tensor([[1.0, 2.0], [3.0, 4.0]])
m = x.mean(dim=0)
print(x - m)Quando le shape non supportano il broadcasting
Se due dimensioni differiscono ed entrambe sono diverse da 1, il broadcasting fallisce e PyTorch genera un chiaro errore sulle dimensioni.
Aggiungere dimensioni per guidare il broadcasting
Usi unsqueeze per inserire un asse di grandezza 1 esattamente dove serve. In questo modo guida il broadcasting verso la shape desiderata.
col = torch.tensor([1, 2, 3]).unsqueeze(1)
print(col.shape) # torch.Size([3, 1])Perché il broadcasting è veloce
Il broadcasting non copia mai i valori estesi: li riutilizza. Per questo la matematica vettorializzata è molto più veloce dei cicli Python. 🚀
Verifica rapida
Sa prevedere se due shape supportano il broadcasting?
Riepilogo: regole del broadcasting
Ha imparato le due regole: le dimensioni corrispondono quando sono uguali oppure quando una vale 1. Padroneggi questo concetto e i cicli si trasformano in operazioni sui tensori pulite e veloci. 💪
Domande Frequenti
La lezione «Regole di broadcasting che evitano i cicli» è gratuita?
Sì — il testo completo di «Regole di broadcasting che evitano i cicli» è 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 «Regole di broadcasting che evitano i cicli»?
Combini tensori di forme diverse elemento per elemento 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 3 di 4.
Quanto tempo richiede la lezione «Regole di broadcasting che evitano i cicli»?
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
- Forme, dtype e indicizzazione
- Reshape, view, squeeze e unsqueeze
- Regole di broadcasting che evitano i cicli
- I tensori comunicano con NumPy