Straturile de pooling reduc rezoluția spațială (lățimea și înălțimea) a hărților de caracteristici convoluționale, diminuând numărul de parametri și oferind rezistență la mici translații spațiale în imagini.
Tipuri principale de pooling:
nn.MaxPool2d(2, stride=2): Păstrează valoarea maximă din fiecare fereastră 2×2, evidențiind marginile și contururile pregnante.nn.AvgPool2d(2, stride=2): Calculează media aritmetică a pixelilor din fereastră.nn.AdaptiveAvgPool2d(output_size): Ajustează automat dimensiunea kernelului și pasul de calcul pentru a garanta că ieșirea are exact dimensiunea cerută (ex: 1×1 pentru Global Average Pooling), indiferent de rezoluția imaginii de intrare.
import torch
import torch.nn as nn
# Intrare cu rezoluție arbitrară: (Batch=4, Canale=512, H=14, W=14)
feat_map = torch.randn(4, 512, 14, 14)
# Global Average Pooling la ieșirea din backbone convoluțional
gap = nn.AdaptiveAvgPool2d((1, 1))
pooled = gap(feat_map)
print("După GAP:", pooled.shape) # torch.Size([4, 512, 1, 1])
Global Average Pooling este utilizat la finalul rețelelor ResNet și EfficientNet pentru a conecta convoluțiile direct la stratul de clasificare final.
Întrebări & Exemple practice:
Sub-eșantionare Spațială: nn.MaxPool2d, AvgPool2d și AdaptiveAvgPool2dAi o întrebare despre Sub-eșantionare Spațială: nn.MaxPool2d, AvgPool2d și AdaptiveAvgPool2d sau ai descoperit un truc, prompt sau fragment de cod util? Distribuie-l cu ceilalți membri ai comunității!
Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau resurse pentru această pagină. Dacă ai testat un prompt sau ai un snippet util, adaugă-l mai jos pentru comunitate.