Deep Learning Academy · Lezione

Reshape, view, squeeze e unsqueeze

Modifichi le dimensioni senza copiare i dati

Lezione 2 di 413 passaggi

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. 🔧

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 «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

  1. Forme, dtype e indicizzazione
  2. Reshape, view, squeeze e unsqueeze
  3. Regole di broadcasting che evitano i cicli
  4. I tensori comunicano con NumPy
← Torna a Deep Learning Academy