Python Academy · Oppitunti

Kuvien luokitteluprojekti

Perustason CNN-mallin rakentaminen

Oppitunti 4/510 vaihetta

Kuvien luokitteluprojekti on ilmainen Python Academy-oppitunti CoddyKitissä. Tämä on oppitunti 4/5. 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 Python Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Python Academy-kurssilla on yhteensä 5 oppituntia.

Kuvien luokitteluprojekti

Tässä projektissa rakennamme yksinkertaisen CNN-verkon, joka luokittelee kuvia eri luokkiin. Kuvien luokittelussa ennustetaan syötekuvan luokka tai tunniste.

Kuvien luokitteluprojekti — kuvitus 1

Luokittelun datajoukko

Käytämme CIFAR-10-datajoukkoa, joka koostuu 60 000 kuvasta 10 luokassa, kuten lentokoneista, autoista, linnuista ja kissoista. Kunkin kuvan koko on 32×32 pikseliä, ja siinä on 3 värikanavaa (RGB).

Datajoukon lataaminen

Lataamme CIFAR-10-datajoukon TensorFlow’n avulla:

import tensorflow as tf
from tensorflow.keras.datasets import cifar10

# Load dataset
(x_train, y_train), (x_test, y_test) = cifar10.load_data()

# Normalize the pixel values to [0, 1]
x_train = x_train / 255.0
x_test = x_test / 255.0

print("Training data shape:", x_train.shape)

CNN-mallin rakentaminen

Määrittelemme CNN-arkkitehtuurin, joka sisältää konvoluutio-, pooling- ja täysin yhdistettyjä kerroksia:

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense

# Define the CNN model
model = Sequential([
    Conv2D(32, (3, 3), activation='relu', input_shape=(32, 32, 3)),
    MaxPooling2D((2, 2)),
    Conv2D(64, (3, 3), activation='relu'),
    MaxPooling2D((2, 2)),
    Flatten(),
    Dense(128, activation='relu'),
    Dense(10, activation='softmax')
])

Mallin kääntäminen

Käännämme mallin seuraavilla asetuksilla:

  • Häviöfunktio: Kategorinen ristientropia moniluokkaista luokittelua varten.
  • Optimointimenetelmä: Adam-optimointimenetelmä tehokasta oppimista varten.
  • Mittarit: Tarkkuus suorituskyvyn arviointiin.
# Compile the model
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])

Mallin kouluttaminen

Koulutamme mallia koulutusdatan avulla 10 epookin ajan. Koulutuksen aikana malli oppii luokittelemaan kuvia eri luokkiin.

# Train the model
model.fit(x_train, y_train, epochs=10, validation_data=(x_test, y_test))

Mallin arviointi

Koulutuksen jälkeen arvioimme mallin testidatan avulla tarkistaaksemme sen tarkkuuden:

# Evaluate the model
loss, accuracy = model.evaluate(x_test, y_test)
print(f"Test Accuracy: {accuracy * 100:.2f}%")

Ennusteiden tekeminen

Koulutetun mallin avulla voimme tehdä ennusteita uusista kuvista:

# Predict the category of a test image
import numpy as np

sample_image = x_test[0]
sample_label = y_test[0]

prediction = np.argmax(model.predict(sample_image[np.newaxis, ...]))
print(f"Predicted Label: {prediction}, Actual Label: {sample_label[0]}")

Kuvien luokittelun haasteet

Yleisiä haasteita ovat:

  • Ylisovittaminen: Malli suoriutuu hyvin koulutusdatalla mutta heikosti uudella datalla.
  • Luokkien epätasapaino: Luokat ovat datajoukossa edustettuina epätasaisesti.
  • Laskennallinen kustannus: Syvien verkkojen kouluttaminen vaatii huomattavasti resursseja.

Yhteenveto ja seuraavat vaiheet

Tässä projektissa:

  • Rakensimme ja koulutimme CNN-verkon kuvien luokittelua varten CIFAR-10-datajoukon avulla.
  • Opimme lataamaan, esikäsittelemään ja arvioimaan datajoukon.
  • Keskustelimme kuvien luokittelutehtävien haasteista.

Seuraavaksi tutustumme data-augmentointitekniikoihin, joilla mallin suorituskykyä voidaan parantaa tuottamalla koulutuskuvista muunnelmia.

Kuvien luokitteluprojekti — kuvitus 10
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
76
Oppitunnit
320

Usein kysytyt kysymykset

Onko oppitunti ”Kuvien luokitteluprojekti” ilmainen?

Kyllä – oppitunnin ”Kuvien luokitteluprojekti” 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 Python Academy-kurssin, päivitä CoddyKit PROhon. Python Academy-kurssilla on yhteensä 5 oppituntia.

Mitä opin oppitunnilla ”Kuvien luokitteluprojekti”?

Perustason CNN-mallin rakentaminen Harjoittelet Python Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Python Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Python Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/5.

Kuinka kauan ”Kuvien luokitteluprojekti”-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ä Python Academy-oppitunnilla?

Kyllä. Jokainen Python 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. Mitä kuvadata on?
  2. Kuvankäsittely OpenCV:llä
  3. Konvoluutioneuroverkot (CNN)
  4. Kuvien luokitteluprojekti
  5. Datan augmentointimenetelmät
← Takaisin: Python Academy