Python Academy · Lektion

Projekt: bildklassificering

Bygg en grundläggande CNN-modell.

Lektion 4 av 510 steg

Projekt: bildklassificering är en gratis lektion i Python Academy på CoddyKit. Detta är lektion 4 av 5. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Python Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Python Academy innehåller totalt 5 lektioner.

Projekt för bildklassificering

I det här projektet bygger vi ett enkelt CNN för att klassificera bilder i kategorier. Bildklassificering innebär att förutsäga kategorin eller etiketten för en inmatad bild.

Projekt: bildklassificering — illustration 1

Datauppsättning för klassificering

Vi använder datauppsättningen CIFAR-10, som består av 60 000 bilder i 10 kategorier, till exempel flygplan, bilar, fåglar och katter. Varje bild är 32×32 pixlar stor och har 3 färgkanaler (RGB).

Läsa in datauppsättningen

Vi läser in datauppsättningen CIFAR-10 med TensorFlow:

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)

Bygga CNN-modellen

Vi definierar en CNN-arkitektur med konvolutionslager, poolinglager och fullt anslutna lager:

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')
])

Kompilera modellen

Vi kompilerar modellen med:

  • Förlustfunktion: Kategorisk korsentropi för klassificering i flera klasser.
  • Optimerare: Optimeraren Adam för effektiv inlärning.
  • Mätvärden: Noggrannhet för att utvärdera prestandan.
# Compile the model
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])

Träna modellen

Vi tränar modellen med träningsdata under 10 epoker. Under träningen lär sig modellen att klassificera bilder i kategorier.

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

Utvärdera modellen

Efter träningen utvärderar vi modellen på testdata för att kontrollera dess noggrannhet:

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

Göra förutsägelser

Vi kan använda den tränade modellen för att göra förutsägelser på nya bilder:

# 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]}")

Utmaningar inom bildklassificering

Vanliga utmaningar är:

  • Överanpassning: Modellen presterar bra på träningsdata men dåligt på nya data.
  • Klassobalans: Ojämn representation av kategorierna i datauppsättningen.
  • Beräkningskostnad: Träning av djupa nätverk kräver betydande resurser.

Sammanfattning och nästa steg

I det här projektet:

  • Byggde och tränade vi ett CNN för bildklassificering med datauppsättningen CIFAR-10.
  • Lärde vi oss att läsa in, förbehandla och utvärdera datauppsättningen.
  • Diskuterade vi utmaningar inom bildklassificering.

Härnäst utforskar vi tekniker för dataaugmentering för att förbättra modellens prestanda genom att generera varianter av träningsbilder.

Projekt: bildklassificering — illustration 10
Gratis att börja

Lär dig Python med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
76
Lektioner
320

Vanliga frågor

Är lektionen ”Projekt: bildklassificering” gratis?

Ja – hela texten till ”Projekt: bildklassificering” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Python Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i Python Academy innehåller totalt 5 lektioner.

Vad lär jag mig i ”Projekt: bildklassificering”?

Bygg en grundläggande CNN-modell. Ni övar på Python Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Python Academy?

Du behöver inga förkunskaper. Utbildningen i Python Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 5.

Hur lång tid tar lektionen ”Projekt: bildklassificering”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Python Academy-lektionen?

Ja. Varje Python Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Vad är bilddata?
  2. Bildbehandling med OpenCV
  3. Konvolutionella neurala nätverk (CNN)
  4. Projekt: bildklassificering
  5. Tekniker för dataaugmentering
← Tillbaka till Python Academy