0Pricing
Deep Learning Academy · Lekcja

Tensory współpracują z NumPy

Konwertować tensory torch na tablice NumPy i odwrotnie

Tensory współpracują z NumPy to bezpłatna lekcja Deep Learning Academy na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Deep Learning Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Deep Learning Academy zawiera 4 lekcji w sumie.

Dwa światy, jeden most

Wiele danych zaczyna jako tablica NumPy. PyTorch ułatwia przechodzenie między tablicami a tensorami w obu kierunkach.

Tablice NumPy przypominają tensory

Tablica NumPy również przechowuje liczby w określonym kształcie, ale nie obsługuje GPU ani autograd. Tensory zapewniają te dodatkowe możliwości.

import numpy as np
a = np.array([1, 2, 3])
print(a.shape)  # (3,)

Z NumPy za pomocą from_numpy

Zamień tablicę na tensor za pomocą torch.from_numpy. To standardowy sposób wczytywania istniejących danych NumPy.

a = np.array([1, 2, 3])
t = torch.from_numpy(a)
print(t)  # tensor([1, 2, 3])

Z powrotem do NumPy za pomocą .numpy

W drugą stronę przechodzi się, wywołując .numpy na tensorze. Przydaje się to podczas tworzenia wykresów lub przekazywania danych do innych bibliotek.

t = torch.tensor([1, 2, 3])
a = t.numpy()
print(type(a))  # numpy.ndarray

Współdzielą tę samą pamięć

Domyślnie tablica i tensor współdzielą jeden blok pamięci. Zmiana jednego po cichu zmienia również drugi.

a = np.array([1, 2, 3])
t = torch.from_numpy(a)
a[0] = 99
print(t[0])  # tensor(99)

Skopiuj, aby zerwać połączenie

Potrzebuje Pan(i) niezależnych danych? Wywołaj .clone na tensorze, aby zmiany nie wpływały na oryginalną tablicę.

a = np.array([1, 2, 3])
t = torch.from_numpy(a).clone()
a[0] = 99
print(t[0])  # tensor(1)

Dtype'y są zachowywane

dtype podąża za danymi przez most. Tablica float64 staje się tensorem float64, chyba że zostanie przekonwertowana.

a = np.array([1.0, 2.0])
t = torch.from_numpy(a)
print(t.dtype)  # torch.float64

Uwaga na pułapkę Float64

NumPy domyślnie używa float64, ale modele wymagają float32. Po konwersji wykonaj rzutowanie, aby uniknąć błędów związanych z niezgodnym dtype.

a = np.array([1.0, 2.0])
t = torch.from_numpy(a).float()
print(t.dtype)  # torch.float32

Tensory GPU muszą wrócić do domu

Nie można bezpośrednio wywołać .numpy na tensorze GPU. Najpierw przenieś go z powrotem za pomocą .cpu(), a dopiero potem dokonaj konwersji.

t = torch.tensor([1, 2, 3])
a = t.cpu().numpy()
print(a)  # [1 2 3]

Odłącz przed konwersją gradientów

Jeśli tensor śledzi gradienty, przed .numpy wywołaj .detach, aby pobrać wartości bez grafu autograd.

t = torch.tensor([1.0], requires_grad=True)
a = t.detach().numpy()
print(a)  # [1.]

Przepis na czystą konwersję

Bezpieczny schemat dla dowolnego tensora to: detach, następnie cpu, a potem numpy. Działa niezależnie od tego, czy dotyczą go gradienty lub GPU.

t = torch.tensor([1.0, 2.0])
a = t.detach().cpu().numpy()
print(a)  # [1. 2.]

Szybkie sprawdzenie

Jedno pytanie o zależność między tablicą a tensorem.

Podsumowanie: Tensory rozmawiają z NumPy

Można konwertować w obu kierunkach za pomocą from_numpy i .numpy, uważać na pułapkę współdzielonej pamięci oraz używać schematu detach-cpu-numpy do bezpiecznego eksportu. 🌉

Często zadawane pytania

Czy lekcja „Tensory współpracują z NumPy” jest bezpłatna?

Tak — pełny tekst „Tensory współpracują z NumPy” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Deep Learning Academy, przejdź na CoddyKit PRO. Kurs Deep Learning Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Tensory współpracują z NumPy”?

Konwertować tensory torch na tablice NumPy i odwrotnie Ćwiczysz Deep Learning Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Deep Learning Academy?

Nie wymagamy żadnego doświadczenia. Deep Learning Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.

Ile czasu zajmuje lekcja „Tensory współpracują z NumPy”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Deep Learning Academy?

Tak. Każda lekcja Deep Learning Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Kształty, dtype i indeksowanie
  2. Reshape, view, squeeze i unsqueeze
  3. Reguły broadcastingu, które oszczędzają pętle
  4. Tensory współpracują z NumPy
← Powrót do Deep Learning Academy