CodeBlanks Logo Icon CodeBlanks

MaxPool2d

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

model.py
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

model.py
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.

Soru
havuz = nn.____(2)
Cevap
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

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