Dziedziczenie po nn.Module: __init__ i forward
Poznać standardowy szkielet modelu PyTorch
Dziedziczenie po nn.Module: __init__ i forward to bezpłatna lekcja Deep Learning Academy na CoddyKit. To lekcja 1 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.
Modele to po prostu klasy
W PyTorch każdy model jest klasą języka Python. Tworzy się go przez dziedziczenie po nn.Module — klasie bazowej, na której opierają się wszystkie sieci.
Dwie metody sterują działaniem
Model potrzebuje do działania tylko dwóch metod: __init__ konfiguruje warstwy, a forward opisuje przepływ danych przez nie.
Zawsze wywołuj super().__init__
Pierwsza linia wewnątrz __init__ musi wywoływać super().__init__(). W ten sposób model zostaje podłączony do PyTorch i może on śledzić wszystkie elementy. 🔌
class Net(nn.Module):
def __init__(self):
super().__init__()Definiuj warstwy w __init__
Wewnątrz __init__ tworzysz warstwy i zapisujesz je jako atrybuty. Umieszczenie ich w self pozwala PyTorch automatycznie je zarejestrować.
self.fc1 = nn.Linear(4, 8)
self.fc2 = nn.Linear(8, 2)forward jest przepisem
Metoda forward przyjmuje tensor wejściowy i zwraca wynik. Określa dokładną kolejność, w jakiej warstwy przetwarzają dane.
def forward(self, x):
x = self.fc1(x)
return self.fc2(x)Nigdy nie wywołuj forward bezpośrednio
Wywołuj model jak funkcję, a nie model.forward(x). Użycie model(x) uruchamia mechanizmy hooks i obsługę wewnętrzną, które są pomijane przy bezpośrednim wywołaniu forward.
out = model(x) # preferred
# not: out = model.forward(x)Warstwy stają się parametrami
Ponieważ warstwy znajdują się w self, ich wagi są zbierane jako parametry modelu. Optymalizator później aktualizuje dokładnie te elementy.
Utwórz, a następnie używaj
Utwórz model raz, a następnie wielokrotnie przekazuj mu tensory. Każde wywołanie przebiega z użyciem tych samych wyuczonych wag.
model = Net()
prediction = model(sample_input)Rozmiary muszą się zgadzać
Rozmiar wyjścia każdej warstwy musi odpowiadać rozmiarowi wejścia następnej. Zaplanuj te wymiary, śledząc przepływ danych przez forward.
Dlaczego ten schemat się sprawdza
Dziedziczenie oddziela konfigurację od przepływu danych. Ten sam prosty szkielet można skalować od małej sieci do ogromnej.
Elastyczność z założenia
Wewnątrz forward można swobodnie rozgałęziać przepływ, zmieniać kształt danych lub ponownie używać warstw. Ta swoboda sprawia, że niestandardowe klasy nn.Module są tak potężne. 💪
Szybki test
Zastanów się, która metoda definiuje sposób przepływu danych przez sieć.
Podsumowanie
Model tworzysz przez dziedziczenie po nn.Module, definiując warstwy w __init__, a przepływ danych w forward. Następnie po prostu wywołujesz model(x). 🎯
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 „Dziedziczenie po nn.Module: __init__ i forward” jest bezpłatna?
Tak — pełny tekst „Dziedziczenie po nn.Module: __init__ i forward” 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 „Dziedziczenie po nn.Module: __init__ i forward”?
Poznać standardowy szkielet modelu PyTorch Ć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 1 z 4.
Ile czasu zajmuje lekcja „Dziedziczenie po nn.Module: __init__ i forward”?
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
- Dziedziczenie po nn.Module: __init__ i forward
- Stosowanie warstw liniowych
- nn.Sequential dla szybkich modeli
- Sprawdzanie parametrów i kształtów warstw