Saml en CNN-billedklassifikator
Sæt Conv-ReLU-pool-blokke sammen til en fungerende model.
Saml en CNN-billedklassifikator er en gratis Deep Learning Academy-lektion på CoddyKit. Dette er lektion 4 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Deep Learning Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Deep Learning Academy-kurset indeholder 4 lektioner i alt.
CNN-opskriften
En klassisk billedklassifikator stabler blokke af typen conv-ReLU-pool for at udtrække egenskaber og afslutter derefter med fuldt forbundne lag, der forudsiger klassen.
Én byggesten
Hver blok følger den samme rytme: et konvolutionslag, en ReLU-aktivering og derefter en pooling. Dette er den grundlæggende konvolutionsblok, som du gentager.
block = nn.Sequential(
nn.Conv2d(3, 16, 3, padding=1),
nn.ReLU(),
nn.MaxPool2d(2),
)ReLU tilføjer ikke-linearitet
Uden en aktivering kollapser stablede konvolutioner til ét lineært trin. ReLU efter hver konvolution gør det muligt for netværket at lære komplekse former.
Stabl blokke for at gå dybere
Gentag blokken, og øg kanalerne hver gang. Flere blokke betyder et bredere modtagelsesfelt og mere avancerede indlærte egenskaber.
Fladgør før klassifikatorhovedet
Efter konvolutionsblokkene har du en stak små kort. Fladgør dem til én vektor, så et fuldt forbundet lag kan læse dem.
x = torch.flatten(x, start_dim=1)Klassifikatorhovedet
Et Linear-lag omsætter de fladgjorte egenskaber til én score pr. klasse. For ti klasser producerer det ti tal.
head = nn.Linear(64, 10)Definér modellen
Pak egenskaberne og klassifikatorhovedet ind i et nn.Module. Forward-metoden kører konvolutionerne, fladgør resultatet og kører derefter klassifikatoren.
class CNN(nn.Module):
def __init__(self):
super().__init__()
self.features = block
self.head = headSkriv forward-passagen
I forward sender du billedet gennem egenskaberne, fladgør resultatet og giver det til hovedet. Outputtet er én rå score pr. klasse.
def forward(self, x):
x = self.features(x)
x = torch.flatten(x, 1)
return self.head(x)Output er logits
Hovedet returnerer rå scorer kaldet logits, ikke sandsynligheder. Krydsentropitabsfunktionen forventer netop disse rå værdier under træningen.
Vælg tabsfunktionen
Til billeder med flere klasser skal du bruge CrossEntropyLoss. Den anvender softmax internt og sammenligner med indekset for den korrekte etiket.
loss_fn = nn.CrossEntropyLoss()Forudsig en klasse
Under inferens tager du indekset for den største logit. Denne argmax er modellens forudsagte klasse for billedet. 🖼️
pred = logits.argmax(dim=1)Hurtigt tjek
Lad os tjekke rækkefølgen af delene i en CNN-klassifikator.
Opsummering: En fungerende CNN
Du har samlet en CNN: blokke af typen conv-ReLU-pool udtrækker egenskaber, flatten sender dem til et Linear-hoved, og argmax over logits giver den forudsagte klasse. 🎉
Lær Python med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 30
- Lektioner
- 120
Ofte stillede spørgsmål
Er lektionen “Saml en CNN-billedklassifikator” gratis?
Ja — hele teksten til “Saml en CNN-billedklassifikator” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Deep Learning Academy-kurset, skal du opgradere til CoddyKit PRO. Deep Learning Academy-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Saml en CNN-billedklassifikator”?
Sæt Conv-ReLU-pool-blokke sammen til en fungerende model. Du øver dig i Deep Learning Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Deep Learning Academy?
Der kræves ingen tidligere erfaring. Deep Learning Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 4 af 4.
Hvor lang tid tager lektionen “Saml en CNN-billedklassifikator”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Deep Learning Academy-lektion?
Ja. Alle Deep Learning Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Konvolution: Kernels glider over pixels
- Stride, padding og pooling
- Kanaler, feature maps og receptive fields
- Saml en CNN-billedklassifikator