1
$\begingroup$

I'm having trouble understanding how the math works in the C5 convolution layer of the LeNet-5 network.

Layer 4 (S4) has 16 feature maps of size 5x5. Using a convolution kernel of size 5x5 with valid padding on this layer would produce a 1x1 output. Therefore, if a 5x5 kernel were used with a single filter per kernel, C5 would produce 16 1x1 feature maps.

The network architecture actually shows 120 1x1 feature maps. I would assume that this would be achieved by using multiple filters per kernel. However, in order to get 120 feature maps from 16 you'd need 7.5 filters per kernel which doesn't really make sense (16 * 7.5 = 120).

I'm assuming I'm missing something simple here, but how does the math work out to go from 16 5x5 feature maps to 120 1x1 feature maps? How do you achieve this outcome if not by some integer value of filters per kernel? Thanks.

$\endgroup$
1
$\begingroup$

Each convolution extends through the depth of the feature volume. E.g. a 5x5 convolution from 16 feature planes is really 5x5x16. To generate 120 feature maps, you simply need 120 of these convolutions.

$\endgroup$
  • $\begingroup$ Okay, so I shouldn't think about it as running the convolution against each incoming feature map individually, but against all the feature maps together (the feature volume as you said). Therefore, C5 could be thought of as doing 120 convolutions using a 5x5 kernel through the entire 5x5x16 feature volume. That makes sense. Thanks. $\endgroup$ – jayemar Apr 29 '17 at 19:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.