Deep Learning Academy · Lezione

I tensori comunicano con NumPy

Converti tra tensori torch e array NumPy

Lezione 4 di 413 passaggi

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

Condividono 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.float64

Attenzione 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.float32

I 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. 🌉

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

  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