Deep Learning Academy · Lekcja

Wywołać backward(), aby uzyskać gradienty

Wypełnić .grad jednym wierszem kodu

Lekcja 2 z 413 kroki

Wywołać backward(), aby uzyskać gradienty to bezpłatna lekcja Deep Learning Academy na CoddyKit. To lekcja 2 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.

Jedna linia wystarczy do różniczkowania

Po zbudowaniu grafu jedno wywołanie wykonuje całe różniczkowanie. Uruchom backward() na wyniku, a gradienty przepłyną do każdego wejścia.

Zacznij od skalaru

Wywołują Państwo backward na końcowej liczbie, którą chcą Państwo zminimalizować, zwykle na loss. Musi to być pojedynczy skalar, aby autograd wiedział, od czego zacząć.

y = x ** 2
y.backward()

Gradienty trafiają do .grad

Po wykonaniu backward w każdym tensorze liściowym .grad przechowuje pochodną wyniku względem tego tensora. Obliczenia są już zakończone.

print(x.grad)

Szybkie sprawdzenie ręczne

Dla y równego x do kwadratu rachunek różniczkowy mówi, że pochodna wynosi 2x. Gdy x jest równe 2, wynik to 4, a PyTorch wpisuje do x.grad dokładnie 4.0.

Backward przechodzi przez graf

backward() przechodzi przez graf od wyniku do danych wejściowych, stosując regułę łańcuchową w każdym węźle. Napisali Państwo tylko obliczenia forward, a całą resztę otrzymali Państwo automatycznie.

Gradienty dla wielu wejść

Jeśli wynik zależy od kilku śledzonych tensorów, jedno wywołanie backward wypełni wartość .grad każdego z nich jednocześnie. Tak aktualizuje się całe modele.

loss = (a * b + c).sum()
loss.backward()

Graf zostaje zużyty

Domyślnie graf jest zwalniany po backward, aby oszczędzać pamięć, dlatego ponowne wywołanie powoduje błąd. Przy następnym przejściu w przód tworzony jest nowy graf.

Zachowaj go, jeśli musisz

Potrzebują Państwo ponownie wywołać backward na tym samym grafie? Proszę przekazać retain_graph równe true. Zwykle nie jest to potrzebne, więc należy tego unikać, chyba że błąd wyraźnie tego wymaga.

loss.backward(retain_graph=True)

Wyniki niebędące skalarami

Jeśli wynikiem jest wektor, backward wymaga argumentu gradient, który określa wagę każdego elementu. Najczęściej zamiast tego sumuje się wynik do skalara.

To jest przejście wsteczne

To pojedyncze wywołanie backward to słynne przejście wsteczne podczas trenowania. Forward oblicza predykcje, a backward oblicza, jak skorygować wagi.

Od gradientów do uczenia

Liczby w .grad wskazują każdej wadze, w którą stronę powinna się przesunąć. Optymalizator odczytuje je i lekko przesuwa wagi, aby nieco zmniejszyć loss.

Szybki test

Upewnij się, że backward jest jasny.

Podsumowanie

Wywołaj backward() na skalarnej wartości loss, a autograd zastosuje regułę łańcuchową w całym grafie, wypełniając .grad każdego tensora jego pochodną. To właśnie przejście wsteczne. 🔁

Bezpłatny start

Ucz się Python dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
30
Lekcje
120

Często zadawane pytania

Czy lekcja „Wywołać backward(), aby uzyskać gradienty” jest bezpłatna?

Tak — pełny tekst „Wywołać backward(), aby uzyskać gradienty” 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 „Wywołać backward(), aby uzyskać gradienty”?

Wypełnić .grad jednym wierszem kodu Ć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 2 z 4.

Ile czasu zajmuje lekcja „Wywołać backward(), aby uzyskać gradienty”?

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. requires_grad i graf obliczeń
  2. Wywołać backward(), aby uzyskać gradienty
  3. Odczytywanie i zerowanie .grad
  4. torch.no_grad() podczas inferencji
← Powrót do Deep Learning Academy