Kootkaa CNN-kuvaluokitin
Muodostakaa Conv-ReLU-pool-lohkoista toimiva malli
Kootkaa CNN-kuvaluokitin on ilmainen Deep Learning Academy-oppitunti CoddyKitissä. Tämä on oppitunti 4/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Deep Learning Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Deep Learning Academy-kurssilla on yhteensä 4 oppituntia.
CNN:n resepti
Klassinen kuvien luokitin pinoaa conv-ReLU-pool-lohkoja piirteiden erottamista varten ja päättää käsittelyn tiheisiin kerroksiin, jotka ennustavat luokan.
Yksi rakennuspalikka
Jokainen lohko noudattaa samaa rytmiä: konvoluutiokerros, ReLU-aktivointi ja sitten pooling. Tämä on toistettava peruskonvoluutiolohko.
block = nn.Sequential(
nn.Conv2d(3, 16, 3, padding=1),
nn.ReLU(),
nn.MaxPool2d(2),
)ReLU lisää epälineaarisuutta
Ilman aktivointia pinotut konvoluutiot pelkistyvät yhdeksi lineaariseksi vaiheeksi. Jokaisen konvoluution jälkeen käytettävä ReLU antaa verkolle mahdollisuuden oppia monimutkaisia muotoja.
Pinoa lohkoja ja syvennä verkkoa
Toistakaa lohko ja kasvattakaa kanavien määrää joka kerta. Useammat lohkot tarkoittavat laajempaa vastaanottokenttää ja monipuolisempia opittuja piirteitä.
Litistä ennen luokittelupäätä
Konvoluutiolohkojen jälkeen käytettävissänne on pienten karttojen pino. Flatten litistää ne yhdeksi vektoriksi, jotta tiheä kerros voi käsitellä niitä.
x = torch.flatten(x, start_dim=1)Luokittelupää
Linear-kerros muuntaa litistetyt piirteet yhdeksi pistemääräksi luokkaa kohden. Kymmenellä luokalla tuloksena on kymmenen lukua.
head = nn.Linear(64, 10)Määritä malli
Koostakaa piirteet ja luokittelupää nn.Module-moduulin sisään. Forward-metodi suorittaa konvoluutiot, litistää tuloksen ja käyttää sitten luokittelijaa.
class CNN(nn.Module):
def __init__(self):
super().__init__()
self.features = block
self.head = headKirjoita forward-vaihe
Käykää forward-metodissa kuva piirteiden läpi, litistäkää tulos ja syöttäkää se päälle. Tuloksena on yksi raakapistemäärä luokkaa kohden.
def forward(self, x):
x = self.features(x)
x = torch.flatten(x, 1)
return self.head(x)Tulokset ovat logitteja
Pää palauttaa raakapistemääriä, joita kutsutaan logiteiksi, ei todennäköisyyksiä. Cross-entropy-häviö odottaa koulutuksen aikana juuri näitä raaka-arvoja.
Valitse häviöfunktio
Moniluokkaisiin kuviin käytetään CrossEntropyLoss-funktiota. Se käyttää softmaxia sisäisesti ja vertaa tulosta oikean luokan indeksin kanssa.
loss_fn = nn.CrossEntropyLoss()Ennusta luokka
Päätelmävaiheessa ottakaa suurimman logitin indeksi. Tämä argmax on mallin kuvasta ennustama luokka. 🖼️
pred = logits.argmax(dim=1)Pikatarkistus
Tarkistetaan CNN-luokittimen osien järjestys.
Kertaus: toimiva CNN
Kokositte CNN:n: conv-ReLU-pool-lohkot erottavat piirteitä, flatten syöttää ne Linear-päälle ja logittien argmax antaa ennustetun luokan. 🎉
Opi Python tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 30
- Oppitunnit
- 120
Usein kysytyt kysymykset
Onko oppitunti ”Kootkaa CNN-kuvaluokitin” ilmainen?
Kyllä – oppitunnin ”Kootkaa CNN-kuvaluokitin” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Deep Learning Academy-kurssin, päivitä CoddyKit PROhon. Deep Learning Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Kootkaa CNN-kuvaluokitin”?
Muodostakaa Conv-ReLU-pool-lohkoista toimiva malli Harjoittelet Deep Learning Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Deep Learning Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Deep Learning Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/4.
Kuinka kauan ”Kootkaa CNN-kuvaluokitin”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Deep Learning Academy-oppitunnilla?
Kyllä. Jokainen Deep Learning Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Konvoluutio: kernelit liukuvat pikselien yli
- Askel, täyttö ja pooling
- Kanavat, piirrekartat ja vastaanottokentät
- Kootkaa CNN-kuvaluokitin