Kuvien luokitteluprojekti
Perustason CNN-mallin rakentaminen
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.

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.

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
- Mitä kuvadata on?
- Kuvankäsittely OpenCV:llä
- Konvoluutioneuroverkot (CNN)
- Kuvien luokitteluprojekti
- Datan augmentointimenetelmät