In the notebook it says:

- A convolution extracts features from an input image by taking the dot product between the input data and a 2D array of weights (the filter).

But isn’t each filter fxfxn_C_prev, i.e. 3D?

In the notebook it says:

- A convolution extracts features from an input image by taking the dot product between the input data and a 2D array of weights (the filter).

But isn’t each filter fxfxn_C_prev, i.e. 3D?

Hi macmoe,

Yes, in the case of a 3D (color) image you are right. Thanks for pointing this out!

1 Like

I’m confused. Which step of the convolution layer does have a dot product? Can you say which lecture that I can understand?

Hi, this is covered in week 1 of the course. Just watch the videos from the start. The convolution layer applies filters to an image. Applying filters involves taking the dot product between filter weights and slices of the image / volume.

2 Likes

As @macmoe says, this is covered in the lectures. Prof Ng walks you through several examples of how the filters are applied. In the Edge Detection lecture he shows how it works, but with only one channel. Calling the operation a “dot product” may seem a little confusing in that we don’t actually use *np.dot* to implement the operation, but it is an elementwise multiply followed by summing up the products to produce a scalar value. So it is analogous to a vector dot product, even if we accomplish it “manually”. We also add one more scalar (the bias) to get the final answer. Of course that operation I just described is what you do for each output value, iterated over the entire input space and all the output channel filters.

1 Like