Deep Learning Academy · Oppitunti

Kootkaa CNN-kuvaluokitin

Muodostakaa Conv-ReLU-pool-lohkoista toimiva malli

Oppitunti 4/413 vaihetta

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

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

Aloita maksutta

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

  1. Konvoluutio: kernelit liukuvat pikselien yli
  2. Askel, täyttö ja pooling
  3. Kanavat, piirre­kartat ja vastaanottokentät
  4. Kootkaa CNN-kuvaluokitin
← Takaisin: Deep Learning Academy