iludis.de

Vom Bild zur Feature-Map

Faltung, Stride, Pooling und das rezeptive Feld · PyTorch-Konvention

Architektur

Nach jeder Conv-Schicht fest MaxPool2d(2) – Stride 2, kachelt überlappungsfrei.

Berechnung pro Operation

OperationnÜberlappjr
Formelzeichen
nKantenlänge der Ausgabe dieser Operation (Neuronen je Zeile)
n_einKantenlänge der Eingabe = Feature-Map der Stufe direkt darüber
kKernelgröße · s Stride · p Padding (same: ⌊k/2⌋, valid: 0)
⌊ ⌋abrunden auf die nächstkleinere ganze Zahl
jkumulierter Sprung (Produkt aller Strides bis hier)
rrezeptives Feld – wie viele Eingabepixel das Neuron sieht

Worauf es ankommt

Innerhalb ≠ zwischen den Fenstern. Ein k×k-Kernel liest immer k benachbarte Zellen (Dilation 1) – unabhängig vom Stride. Der Stride bestimmt nur, wie weit das nächste Fenster springt. Darum ändert Stride die Neuronenzahl und den Überlapp, nicht aber, was ein einzelnes Neuron lückenlos sieht.
Conv gleitet, MaxPool kachelt. Conv-Fenster überlappen sich um k − s Zellen (durchgezogen + gestrichelt im Bild, Überlapp gefüllt). MaxPool (k=2, s=2) hat Überlapp 0 – die Fenster grenzen lückenlos aneinander.
valid + Stride verwirft Ränder. Passt am Rand kein vollständiges Fenster mehr, fällt der Pixel weg (schraffiert). Bei 10×10, k=3, s=2 bleibt so Pixel 9 unbenutzt.
Das rezeptive Feld ist die Verkettung aller Fenster über die Stufen hinweg – die gestrichelte Box auf dem Eingabebild zeigt, was das Neuron der letzten Schicht insgesamt sieht.
Rezeptives Feld
letzte Schicht, auf Eingabe
Ausgabe-Auflösung
Feature-Map letzte Schicht