Reputation: 1024
I have a doubt about how 2 2d convolutions connect with each other. I understand the convolution concept and that x amount of filters produce x amount of feature maps, but what happen when, for example, you have 16 feature maps and you apply a convolution with 8 filters? does each of the 8 filters convolute with each of the 16 feature maps? and then they add the 16 resulting feature maps resulting from each of the 8 filters? or what is the process involved? Thank you. Below you can see a diagram of what I want to know.
Dimensions of x1 and x2:
x1: (?,128,256,16)
x2: (?,128,256,8)
what is the process to go from x1 to x2?
Upvotes: 2
Views: 633
Reputation: 4450
Your misunderstanding is that you are thinking about [h, w]
filter kernels.
But in fact, these are 8-times [h, w, channels_in]
filters.
For each of the 8 output-channels, you have a filter of size [h, w, 16]. Hence, the entire memory consumption is [h, w, channels-in, channels-out] (exactly as stated in the documentation). A good way to visualize it is to think about 8-times having 16 separate [h, w]
filter-kernel, which 16 outputs are summed up.
Upvotes: 2