Özet - CNN
- Makine Öğrenmesi kursu
- İleri seviye
- Ders 46/78
- 6 dk
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; parametreout·in·k·k + out.- Havuzlama:
MaxPool2d,AvgPool2d, küreselAdaptiveAvgPool2d(1). - Bloklar: Conv → BatchNorm → ReLU → Pool; haritalar küçülür, kanallar artar, alıcı alan büyür.
nn.Flattenya 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
import torch
from torch import nn
# buraya yazÖrnek çözüm
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.
gap = nn.____(1)
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 |