Deep Learning Academy · Lekcja

Złożyć klasyfikator obrazów CNN

Połączyć bloki Conv-ReLU-pool w działający model

Lekcja 4 z 413 kroki

Złożyć klasyfikator obrazów CNN 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.

Schemat CNN

Klasyfikator obrazów składa się zwykle z bloków conv-ReLU-pool służących do ekstrakcji cech, a następnie z warstw gęstych przewidujących klasę.

Jeden blok konstrukcyjny

Każdy blok ma ten sam rytm: warstwa konwolucyjna, aktywacja ReLU, a następnie pooling. To podstawowy blok konwolucyjny, który należy powtarzać.

block = nn.Sequential(
    nn.Conv2d(3, 16, 3, padding=1),
    nn.ReLU(),
    nn.MaxPool2d(2),
)

ReLU wprowadza nieliniowość

Bez funkcji aktywacji złożone konwolucje sprowadzają się do jednego kroku liniowego. ReLU po każdej konwolucji pozwala sieci uczyć się złożonych kształtów.

Układaj bloki, aby zwiększać głębokość

Powtarzaj blok, za każdym razem zwiększając liczbę kanałów. Więcej bloków oznacza większe pole recepcyjne i bogatsze wyuczone cechy.

Spłaszcz dane przed głową klasyfikatora

Po blokach konwolucyjnych otrzymujesz stos małych map. Spłaszcz je do jednego wektora, aby warstwa gęsta mogła je odczytać.

x = torch.flatten(x, start_dim=1)

Głowa klasyfikatora

Warstwa Linear przekształca spłaszczone cechy w jeden wynik dla każdej klasy. Dla dziesięciu klas generuje dziesięć liczb.

head = nn.Linear(64, 10)

Zdefiniuj model

Umieść ekstraktor cech i głowę klasyfikatora w obiekcie nn.Module. Metoda forward wykonuje konwolucje, spłaszcza dane, a następnie uruchamia klasyfikator.

class CNN(nn.Module):
    def __init__(self):
        super().__init__()
        self.features = block
        self.head = head

Zapisz przebieg w przód

W metodzie forward przepuść obraz przez ekstraktor cech, spłaszcz wynik i przekaż go do głowy klasyfikatora. Wynikiem jest jeden surowy wynik dla każdej klasy.

def forward(self, x):
    x = self.features(x)
    x = torch.flatten(x, 1)
    return self.head(x)

Wyjścia to logity

Głowa klasyfikatora zwraca surowe wyniki nazywane logitami, a nie prawdopodobieństwa. Podczas uczenia funkcja straty entropii krzyżowej oczekuje dokładnie takich surowych wartości.

Wybierz funkcję straty

W przypadku obrazów wieloklasowych użyj CrossEntropyLoss. Funkcja ta wewnętrznie stosuje softmax i porównuje wynik z indeksem prawdziwej etykiety.

loss_fn = nn.CrossEntropyLoss()

Przewiduj klasę

Podczas wnioskowania wybierz indeks największego logitu. To argmax jest przewidywaną przez model klasą obrazu. 🖼️

pred = logits.argmax(dim=1)

Szybkie sprawdzenie

Sprawdźmy kolejność elementów klasyfikatora CNN.

Podsumowanie: działająca sieć CNN

Zbudowałeś sieć CNN: bloki conv-ReLU-pool ekstraktują cechy, spłaszczenie przekazuje je do głowy Linear, a argmax logitów wyznacza przewidywaną klasę. 🎉

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 „Złożyć klasyfikator obrazów CNN” jest bezpłatna?

Tak — pełny tekst „Złożyć klasyfikator obrazów CNN” 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 „Złożyć klasyfikator obrazów CNN”?

Połączyć bloki Conv-ReLU-pool w działający model Ć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 „Złożyć klasyfikator obrazów CNN”?

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. Konwolucja: jądra przesuwają się po pikselach
  2. Stride, padding i pooling
  3. Kanały, mapy cech i pola recepcyjne
  4. Złożyć klasyfikator obrazów CNN
← Powrót do Deep Learning Academy