Wywołać backward(), aby uzyskać gradienty
Wypełnić .grad jednym wierszem kodu
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
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. 🔁
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
- requires_grad i graf obliczeń
- Wywołać backward(), aby uzyskać gradienty
- Odczytywanie i zerowanie .grad
- torch.no_grad() podczas inferencji