Diego Orellana
Diego Orellana

Reputation: 1024

About how multiple tf.layer.conv2d connect between each other

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.

enter image description here

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

Answers (1)

Patwie
Patwie

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

Related Questions