Deep Learning Academy · Lezione

Assembli un classificatore di immagini CNN

Blocchi Conv-ReLU-pool in un modello funzionante

Lezione 4 di 413 passaggi

Assembli un classificatore di immagini CNN è una lezione Deep Learning Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Deep Learning Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Deep Learning Academy include 4 lezioni in totale.

La ricetta delle CNN

Un classificatore di immagini classico impila blocchi conv-ReLU-pool per estrarre le caratteristiche, quindi termina con layer densi che predicono la classe.

Un blocco costruttivo

Ogni blocco segue lo stesso ritmo: un layer conv, un'attivazione ReLU e poi un pool. Questo è il blocco conv di base da ripetere.

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

ReLU aggiunge non linearità

Senza un'attivazione, le convoluzioni impilate si riducono a un unico passaggio lineare. Applicare ReLU dopo ogni conv consente alla rete di imparare forme complesse.

Impilare i blocchi per aumentare la profondità

Ripeta il blocco aumentando ogni volta i canali. Più blocchi significano un campo recettivo più ampio e caratteristiche apprese più ricche.

Appiattire prima della testa

Dopo i blocchi conv si dispone di una serie di piccole mappe. Le si trasformi con Flatten in un unico vettore, così un layer denso può leggerle.

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

La testa del classificatore

Un layer Linear mappa le caratteristiche appiattite in un punteggio per ogni classe. Per dieci classi, produce dieci numeri.

head = nn.Linear(64, 10)

Definire il modello

Racchiuda le caratteristiche e la testa in un nn.Module. Il metodo forward esegue le convoluzioni, appiattisce i dati e poi applica il classificatore.

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

Scrivere il passaggio forward

In forward, faccia passare l'immagine attraverso le caratteristiche, la appiattisca e la fornisca alla testa. L'output è un punteggio grezzo per ogni classe.

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

Gli output sono logits

La testa restituisce punteggi grezzi chiamati logits, non probabilità. Durante l'addestramento, la loss di entropia incrociata si aspetta esattamente questi valori grezzi.

Scegliere la loss

Per immagini multiclasse, utilizzi CrossEntropyLoss. Applica internamente softmax e confronta il risultato con l'indice dell'etichetta corretta.

loss_fn = nn.CrossEntropyLoss()

Predire una classe

In fase di inferenza, prenda l'indice del logit più grande. Questo argmax è la classe predetta dal modello per l'immagine. 🖼️

pred = logits.argmax(dim=1)

Verifica rapida

Verifichiamo l'ordine dei componenti di un classificatore CNN.

Riepilogo: una CNN funzionante

Ha assemblato una CNN: i blocchi conv-ReLU-pool estraggono le caratteristiche, Flatten le fornisce a una testa Linear e l'argmax sui logits restituisce la classe predetta. 🎉

Gratis per iniziare

Impara Python con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
30
Lezioni
120

Domande Frequenti

La lezione «Assembli un classificatore di immagini CNN» è gratuita?

Sì — il testo completo di «Assembli un classificatore di immagini CNN» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Deep Learning Academy, passa a CoddyKit PRO. Il corso Deep Learning Academy include 4 lezioni in totale.

Cosa imparerò in «Assembli un classificatore di immagini CNN»?

Blocchi Conv-ReLU-pool in un modello funzionante Eserciti Deep Learning Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Deep Learning Academy?

Non è richiesta alcuna esperienza precedente. Deep Learning Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.

Quanto tempo richiede la lezione «Assembli un classificatore di immagini CNN»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Deep Learning Academy?

Sì. Ogni lezione Deep Learning Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Convoluzione: i kernel scorrono sui pixel
  2. Stride, padding e pooling
  3. Canali, feature map e campi recettivi
  4. Assembli un classificatore di immagini CNN
← Torna a Deep Learning Academy