I tensori comunicano con NumPy
Converti tra tensori torch e array NumPy
I tensori comunicano con NumPy è 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.
Due mondi, un ponte
Molti dati iniziano la loro vita come array NumPy. PyTorch facilita il passaggio dagli array ai tensori e viceversa.
Gli array NumPy sono simili ai tensori
Anche un array NumPy memorizza numeri secondo una shape, ma senza il supporto della GPU o l'autograd. I tensori aggiungono queste funzionalità.
import numpy as np
a = np.array([1, 2, 3])
print(a.shape) # (3,)Da NumPy con from_numpy
Trasformi un array in un tensore con torch.from_numpy. È il punto di ingresso standard per i dati NumPy esistenti.
a = np.array([1, 2, 3])
t = torch.from_numpy(a)
print(t) # tensor([1, 2, 3])Tornare a NumPy con .numpy
Per fare il percorso inverso, chiami .numpy su un tensore. È utile per creare grafici o passare i dati ad altre librerie.
t = torch.tensor([1, 2, 3])
a = t.numpy()
print(type(a)) # numpy.ndarrayCondividono la stessa memoria
Per impostazione predefinita, l'array e il tensore condividono lo stesso blocco di memoria. Modificando uno, si modifica silenziosamente anche l'altro.
a = np.array([1, 2, 3])
t = torch.from_numpy(a)
a[0] = 99
print(t[0]) # tensor(99)Copiare per interrompere il collegamento
Desidera dati indipendenti? Chiami .clone sul tensore, così le modifiche rimangono separate dall'array originale.
a = np.array([1, 2, 3])
t = torch.from_numpy(a).clone()
a[0] = 99
print(t[0]) # tensor(1)I dtype vengono mantenuti
Il dtype segue i dati attraverso il ponte. Un array float64 diventa un tensore float64, a meno che non lo si converta.
a = np.array([1.0, 2.0])
t = torch.from_numpy(a)
print(t.dtype) # torch.float64Attenzione alla trappola di Float64
NumPy usa float64 per impostazione predefinita, ma i modelli richiedono float32. Esegua la conversione dopo la trasformazione per evitare errori dovuti a dtype incompatibili.
a = np.array([1.0, 2.0])
t = torch.from_numpy(a).float()
print(t.dtype) # torch.float32I tensori GPU devono tornare a casa
Non è possibile chiamare .numpy direttamente su un tensore della GPU. Lo riporti prima indietro con .cpu(), quindi lo converta.
t = torch.tensor([1, 2, 3])
a = t.cpu().numpy()
print(a) # [1 2 3]Scolleghi prima di convertire i gradienti
Se un tensore tiene traccia dei gradienti, chiami .detach prima di .numpy per ottenere i valori senza il grafo autograd.
t = torch.tensor([1.0], requires_grad=True)
a = t.detach().numpy()
print(a) # [1.]Una procedura di conversione pulita
Il modello sicuro per qualsiasi tensore è detach, poi cpu, poi numpy. Funziona indipendentemente dalla presenza di gradienti o GPU.
t = torch.tensor([1.0, 2.0])
a = t.detach().cpu().numpy()
print(a) # [1. 2.]Controllo rapido
Una domanda sul collegamento tra array e tensori.
Riepilogo: i tensori comunicano con NumPy
Può creare un ponte in entrambe le direzioni con from_numpy e .numpy, fare attenzione alla condivisione della memoria e usare detach-cpu-numpy per un'esportazione sicura. 🌉
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 «I tensori comunicano con NumPy» è gratuita?
Sì — il testo completo di «I tensori comunicano con NumPy» è 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 «I tensori comunicano con NumPy»?
Converti tra tensori torch e array NumPy 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 «I tensori comunicano con NumPy»?
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