MaxPool2d
- Makine Öğrenmesi kursu
- İleri seviye
- Ders 43/78
- 5 dk
MaxPool2d, görüntü boyutunu küçültür ve önemli özellikleri korur.
MaxPool2d
Havuzlama, özellik haritasını küçültür. nn.MaxPool2d(2) her 2×2 bölgeden en büyük değeri alır: yükseklik ve genişlik yarıya iner, kanal sayısı değişmez. Parametresi yoktur:
havuz = nn.MaxPool2d(2)
x = torch.tensor([[[[1., 3., 2., 4.],
[5., 6., 1., 2.],
[7., 2., 9., 0.],
[1., 8., 3., 4.]]]])
print(havuz(x).tolist()) # [[[[6.0, 4.0], [8.0, 9.0]]]]Havuzlama küçük kaymalara karşı dayanıklılık sağlar ve sonraki katmanların hesap yükünü azaltır.
Ortalama havuzlama ve küresel havuz
nn.AvgPool2d bölgenin ortalamasını alır. Modern ağlar sonda genellikle küresel ortalama havuzlama kullanır: her kanalı tek bir sayıya indirir, böylece model girdi boyutundan bağımsız olur:
gap = nn.AdaptiveAvgPool2d(1)
print(gap(torch.zeros(8, 512, 7, 7)).shape) # torch.Size([8, 512, 1, 1])
print(gap(torch.zeros(8, 512, 13, 9)).shape) # yine (8, 512, 1, 1)AdaptiveAvgPool2d hedef çıktı boyutunu alır ve gereken pencereyi kendisi hesaplar.
Uygulama Havuzlama
Verilen 4×4 görüntüye nn.MaxPool2d(2) ve nn.AvgPool2d(2) uygula; iki sonucu tolist() ile alt alta yazdır.
Başlangıç kodu
import torch
from torch import nn
x = torch.tensor([[[[1., 3., 2., 4.], [5., 6., 1., 2.], [7., 2., 9., 0.], [1., 8., 3., 4.]]]])
# buraya yazÖrnek çözüm
import torch
from torch import nn
x = torch.tensor([[[[1., 3., 2., 4.], [5., 6., 1., 2.], [7., 2., 9., 0.], [1., 8., 3., 4.]]]])
print(nn.MaxPool2d(2)(x).tolist())
print(nn.AvgPool2d(2)(x).tolist())Beklenen çıktı
[[[[6.0, 4.0], [8.0, 9.0]]]] [[[[3.75, 2.25], [4.5, 4.0]]]]
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 (8, 32, 16, 16) şekilli bir tensöre <code>MaxPool2d(2)</code> uygulanınca şekil ne olur?
- (8, 16, 16, 16)
- (4, 32, 16, 16)
- (8, 32, 14, 14)
- (8, 32, 8, 8) Doğru cevap
Açıklama: Yalnızca uzamsal boyutlar yarıya iner.
2 2×2 en büyük değer havuzlaması uygula.
havuz = nn.____(2)
havuz = nn.MaxPool2d(2)
Açıklama: MaxPool2d her bölgenin en büyük değerini alır.
3 Havuzları eşleştir.
| Kavram | Anlamı |
|---|---|
MaxPool2d(2) |
Bölgenin en büyüğü |
AvgPool2d(2) |
Bölgenin ortalaması |
AdaptiveAvgPool2d(1) |
Kanal başına tek değer |
parametre sayısı |
0 |