Deep Learning Academy · Lektion

Saml en CNN-billedklassifikator

Sæt Conv-ReLU-pool-blokke sammen til en fungerende model.

Lektion 4 af 413 trin

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 = head

Skriv 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. 🎉

Gratis at komme i gang

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

  1. Konvolution: Kernels glider over pixels
  2. Stride, padding og pooling
  3. Kanaler, feature maps og receptive fields
  4. Saml en CNN-billedklassifikator
← Tilbage til Deep Learning Academy