Sett sammen en CNN-bildeklassifikator
Sett sammen Conv-ReLU-pool-blokker til en fungerende modell
Sett sammen en CNN-bildeklassifikator er en gratis leksjon i Deep Learning Academy på CoddyKit. Dette er leksjon 4 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Deep Learning Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Deep Learning Academy inneholder totalt 4 leksjoner.
CNN-oppskriften
En klassisk bildeklassifikator stabler conv-ReLU-pool-blokker for å trekke ut features, og avslutter deretter med fullt tilkoblede lag som forutsier klassen.
Én byggestein
Hver blokk følger samme rytme: et conv-lag, en ReLU-aktivering og deretter en pool. Dette er den grunnleggende conv block som gjentas.
block = nn.Sequential(
nn.Conv2d(3, 16, 3, padding=1),
nn.ReLU(),
nn.MaxPool2d(2),
)ReLU tilfører ikke-linearitet
Uten en aktivering kollapser stablede konvolusjoner til ett lineært trinn. ReLU etter hver conv gjør at nettverket kan lære komplekse former.
Stable blokker for å gå dypere
Gjenta blokken, og øk channels hver gang. Flere blokker gir et bredere receptive field og rikere innlærte features.
Flatten før klassifikatorhodet
Etter conv-blokkene har De en stabel med små kart. Bruk Flatten for å gjøre dem om til én vektor som et fullt tilkoblet lag kan lese.
x = torch.flatten(x, start_dim=1)Klassifikatorhodet
Et Linear-lag omgjør de flatede featurene til én poengsum per klasse. For ti klasser produserer det ti tall.
head = nn.Linear(64, 10)Definer modellen
Pakk inn featurene og hodet i en nn.Module. Forward-metoden kjører conv-lagene, flater ut resultatet og bruker deretter klassifikatoren.
class CNN(nn.Module):
def __init__(self):
super().__init__()
self.features = block
self.head = headSkriv forward-passeringen
I forward sender De bildet gjennom featurene, flater det ut og sender det til hodet. Utgangen er én rå poengsum per klasse.
def forward(self, x):
x = self.features(x)
x = torch.flatten(x, 1)
return self.head(x)Utgangene er logits
Hodet returnerer rå poengsummer kalt logits, ikke sannsynligheter. Cross-entropy-tapet forventer nettopp disse råverdiene under treningen.
Velg tapsfunksjonen
For bilder med flere klasser bruker De CrossEntropyLoss. Den bruker softmax internt og sammenligner med indeksen til den riktige etiketten.
loss_fn = nn.CrossEntropyLoss()Forutsi en klasse
Ved inferens tar De indeksen til den største logiten. Denne argmax-verdien er modellens forutsagte klasse for bildet. 🖼️
pred = logits.argmax(dim=1)Rask sjekk
La oss sjekke rekkefølgen på delene i en CNN-klassifikator.
Oppsummering: En fungerende CNN
De satte sammen en CNN: conv-ReLU-pool-blokker trekker ut features, flatten sender dem til et Linear-hode, og argmax over logits gir den forutsagte klassen. 🎉
Lær deg Python med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 30
- Leksjoner
- 120
Ofte stilte spørsmål
Er leksjonen «Sett sammen en CNN-bildeklassifikator» gratis?
Ja – hele teksten i «Sett sammen en CNN-bildeklassifikator» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Deep Learning Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Deep Learning Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «Sett sammen en CNN-bildeklassifikator»?
Sett sammen Conv-ReLU-pool-blokker til en fungerende modell Du øver på Deep Learning Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Deep Learning Academy?
Ingen tidligere erfaring er nødvendig. Deep Learning Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.
Hvor lang tid tar leksjonen «Sett sammen en CNN-bildeklassifikator»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Deep Learning Academy-leksjonen?
Ja. Alle Deep Learning Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Konvolusjon: Kjerner glir over piksler
- Stride, padding og pooling
- Kanaler, egenskapskart og reseptive felt
- Sett sammen en CNN-bildeklassifikator