In Alex Krizhevsky et al. Imagenet-Klassifikation mit tiefen neuronalen Faltungsnetzen zählt sie die Anzahl der Neuronen in jeder Schicht auf (siehe Abbildung unten).
Die Eingabe des Netzwerks ist 150.528-dimensional und die Anzahl der Neuronen in den verbleibenden Schichten des Netzwerks wird durch 253.440–186.624–64.896–64.896–43.264– 4096–4096–1000 angegeben.

Eine 3D-Ansicht
Die Anzahl der Neuronen für alle Schichten nach der ersten ist klar. Eine einfache Methode zur Berechnung der Neuronen besteht darin, einfach die drei Dimensionen dieser Schicht zu multiplizieren ( planes X width X height):
- Schicht 2:
27x27x128 * 2 = 186,624 - Schicht 3:
13x13x192 * 2 = 64,896 - etc.
Betrachtet man jedoch die erste Schicht:
- Schicht 1:
55x55x48 * 2 = 290400
Beachten Sie, dass dies nicht 253,440 den Angaben auf dem Papier entspricht!
Ausgabegröße berechnen
Der andere Weg, den Ausgangstensor einer Faltung zu berechnen, ist:
Wenn das Eingangsbild ein 3D - Tensor ist
nInputPlane x height x width, wird die Ausgabe Bildgröße sein ,nOutputPlane x owidth x oheightwo
owidth = (width - kW) / dW + 1
oheight = (height - kH) / dH + 1.
(aus der Torch SpatialConvolution-Dokumentation )
Das Eingabebild ist:
nInputPlane = 3height = 224width = 224
Und die Faltungsschicht ist:
nOutputPlane = 96kW = 11kH = 11dW = 4dW = 4
(zB Kernelgröße 11, Schrittweite 4)
Wenn wir diese Zahlen eingeben, erhalten wir:
owidth = (224 - 11) / 4 + 1 = 54
oheight = (224 - 11) / 4 + 1 = 54
Wir haben also nicht die 55x55Maße, die wir für das Papier benötigen. Möglicherweise handelt es sich um Auffüllungen (das cuda-convnet2Modell setzt die Auffüllungen jedoch explizit auf 0).
Wenn wir die 54Dimensionen -size annehmen, erhalten wir 96x54x54 = 279,936Neuronen - immer noch zu viele.
Meine Frage lautet also:
Wie bekommen sie 253.440 Neuronen für die erste Faltungsschicht? Was vermisse ich?