Reshape, view, squeeze e unsqueeze
Modifichi le dimensioni senza copiare i dati
Reshape, view, squeeze e unsqueeze è 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.
Stessi dati, shape diversa
Spesso i numeri sono corretti, ma la disposizione è sbagliata. Il reshaping riorganizza le dimensioni di un tensore senza modificarne i valori.
reshape sceglie una nuova disposizione
Chiami reshape con le dimensioni desiderate. Il numero totale di elementi deve rimanere invariato.
x = torch.arange(6)
y = x.reshape(2, 3)
print(y.shape) # torch.Size([2, 3])Lasciare che -1 deduca una dimensione
Passi -1 per una dimensione e PyTorch la calcolerà in base al numero totale di elementi. È utile quando conosce soltanto le altre dimensioni.
x = torch.arange(6)
y = x.reshape(-1, 2)
print(y.shape) # torch.Size([3, 2])view condivide la stessa memoria
view modifica la shape senza copiare i dati, quindi è veloce. Richiede che i dati siano disposti in modo contiguo in memoria.
x = torch.arange(6)
y = x.view(3, 2)
print(y.shape) # torch.Size([3, 2])reshape è il valore predefinito più sicuro
In caso di dubbio, scelga reshape. Funziona anche con tensori non contigui, copiando i dati solo quando è necessario.
squeeze rimuove le dimensioni di grandezza 1
squeeze elimina qualsiasi dimensione di lunghezza 1. Semplifica shape come (1, 5), trasformandole in una semplice (5).
x = torch.zeros(1, 5)
y = x.squeeze()
print(y.shape) # torch.Size([5])Applicare squeeze a una dimensione specifica
Fornisca a squeeze un indice per rimuovere solo quella dimensione. È più sicuro quando le altre dimensioni di grandezza 1 devono rimanere.
x = torch.zeros(1, 5, 1)
y = x.squeeze(0)
print(y.shape) # torch.Size([5, 1])unsqueeze aggiunge una dimensione
unsqueeze inserisce una nuova dimensione di grandezza 1 nella posizione scelta. È l'esatto opposto di squeeze.
x = torch.tensor([1, 2, 3])
y = x.unsqueeze(0)
print(y.shape) # torch.Size([1, 3])Perché aggiungere una dimensione batch
I modelli si aspettano una dimensione batch all'inizio. unsqueeze(0) trasforma un campione in un batch di uno, così il modello può accettarlo.
sample = torch.randn(3)
batch = sample.unsqueeze(0)
print(batch.shape) # torch.Size([1, 3])Appiattire in un'unica riga
flatten comprime tutte le dimensioni in un unico vettore lungo. È comune usarlo subito prima di un livello lineare finale.
x = torch.zeros(2, 3)
y = x.flatten()
print(y.shape) # torch.Size([6])Il numero di elementi non cambia mai
Ogni operazione di reshape mantiene lo stesso numero totale di valori. Se i conteggi non corrispondono, PyTorch genera un errore di shape.
Verifica rapida
Vediamo se sa prevedere i cambiamenti della shape.
Riepilogo: reshape, view, squeeze e unsqueeze
Ora può trasformare i tensori in qualunque disposizione: reshape per la flessibilità, view per la velocità e squeeze o unsqueeze per rimuovere o aggiungere dimensioni. 🔧
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 «Reshape, view, squeeze e unsqueeze» è gratuita?
Sì — il testo completo di «Reshape, view, squeeze e unsqueeze» è 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 «Reshape, view, squeeze e unsqueeze»?
Modifichi le dimensioni senza copiare i dati 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 «Reshape, view, squeeze e unsqueeze»?
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