CodeBlanks Logo Icon CodeBlanks

Özet - CNN

Bu grupta Conv2d, MaxPool2d ve feature map'i öğrendin.

Özet: CNN

Bu grupta:

  • Evrişim küçük filtreleri kaydırır; ağırlık paylaşımı az parametre ve konumdan bağımsız tanıma sağlar.
  • nn.Conv2d: (N, C, H, W); çıktı ⌊(H + 2p - k)/s⌋ + 1; parametre out·in·k·k + out.
  • Havuzlama: MaxPool2d, AvgPool2d, küresel AdaptiveAvgPool2d(1).
  • Bloklar: Conv → BatchNorm → ReLU → Pool; haritalar küçülür, kanallar artar, alıcı alan büyür.
  • nn.Flatten ya da küresel havuz sonrası doğrusal sınıflandırıcı.

Uygulama Küresel havuzlu CNN

Gövde Conv2d(3, 16, 3, padding=1) → ReLU → Conv2d(16, 32, 3, padding=1) → ReLU, ardından AdaptiveAvgPool2d(1), Flatten ve Linear(32, 5) olan bir model kur. Hem (2, 3, 32, 32) hem (2, 3, 50, 70) girdi için çıktı şekillerini alt alta yazdır.

Başlangıç kodu

model.py
import torch
from torch import nn

# buraya yaz

Örnek çözüm

model.py
import torch
from torch import nn

model = nn.Sequential(
    nn.Conv2d(3, 16, 3, padding=1), nn.ReLU(),
    nn.Conv2d(16, 32, 3, padding=1), nn.ReLU(),
    nn.AdaptiveAvgPool2d(1), nn.Flatten(), nn.Linear(32, 5))
print(model(torch.zeros(2, 3, 32, 32)).shape)
print(model(torch.zeros(2, 3, 50, 70)).shape)

Beklenen çıktı

torch.Size([2, 5])
torch.Size([2, 5])

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 64 giriş, 128 çıkış kanallı 3×3 evrişimin parametre sayısı nedir?

  • 73856 Doğru cevap
  • 73728
  • 8192
  • 1152

Açıklama: 128 · 64 · 3 · 3 = 73728 ağırlık + 128 sapma = 73856.

2 Her kanalı tek değere indir.

Soru
gap = nn.____(1)
Cevap
gap = nn.AdaptiveAvgPool2d(1)

Açıklama: AdaptiveAvgPool2d(1) girdi boyutundan bağımsız 1×1 çıktı üretir.

3 Formülleri eşleştir.

Kavram Anlamı
çıktı boyutu ⌊(H + 2p - k)/s⌋ + 1
Conv2d parametresi out·in·k·k + out
MaxPool2d(2) H/2, W/2
Flatten C·H·W

İleri seviye bölümündeki tüm dersler