I have a simple question about convolution layers in CNNs. Consider that we have 32 features map with size $100\times100$. So, can we set 16 convolution layer with size $9\times9\times16$ after features map? There isn't any limit on depth of the convolution layer? Then if we can, so every $9\times9\times16$ layer produces just one layer? (How does depth=16 work on depth=32)?
1 Answer
When you have 32 feature maps with height and width equal to 100 and the depth of each equal to one it means that you have 32 planes, a common jargon among vision people, with 100 by 100 entries. You can set the height and width of the next layer and they can be arbitrary. You can also set the number of feature maps but the depth of each feature map would be equal to the number of feature maps of the previous layer. So it should be 16 * 9 * 9 * 32 if you set height and width equal to 9 and the number of feature maps to 16. As you can see in 16 * 9 * 9 * 32, 32 is located at the end, this is called channels last. You can not set the depth, because it should be equal to the number of channels, features maps, of the previous layer.
16 * 9 * 9 * 32 means that you have 16 feature maps of dimension 9 * 9 * 32, so the output of each feature map would be the member-wise product of all the outputs of the feature maps of the previous layer and each of 9 * 9 * 32 kernels. Consequently the result would be 16 planes.
I highly recommend you taking a look at here.