Assembli un classificatore di immagini CNN
Blocchi Conv-ReLU-pool in un modello funzionante
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 = headScrivere 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. 🎉
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
- Convoluzione: i kernel scorrono sui pixel
- Stride, padding e pooling
- Canali, feature map e campi recettivi
- Assembli un classificatore di immagini CNN