1
$\begingroup$

Can somebody help me with the formula needed to calculate the number of weights for a CNN, using the following sample question as the basis for it?

Suppose we have a convolutional neural network with a 5x5x1 input volume, followed by one convolutional layer with 5 filters that have a 2x2x1 receptive field, followed by one fully connected output layer with 5 neurons. How many weights does the network have in total?

Any help appreciated because I keep getting the wrong answer. I think the first part is:

5 * (5 * 5 * 1) + 5

And this gives 130, it might be completely wrong anyway I am doing:

filters * (5 x 5 x 1) + filters

For the second part (2 * 2 * 1) with five filters I get:

filters * ( 2 * 2 * 1) + filters = 25

So now I have a total value of 155 and after this I am unsure how to factor in the output neurons and arrive at the answer (which I know is 430).

$\endgroup$

1 Answer 1

2
$\begingroup$

Each receptive field of a filter has a weight. Furthermore, the whole filter has a single bias. This gives for a single filter: 2*2*1+1 = 5 weights per filter. 5 filters * 5 weights = 25 weights for all filters.

The conv layer produces shape (4, 4, 5) if we assume the stride is 1.

The fully connected output layer (dense layer) has 5 neurons. Each of them is connected to the output of the conv layer. So it's (4*4*5) * 5 neurons = 400 connections. Each of these connections has a weight. Each neuron in the dense layer also has a bias, so there are 5 more weights.

To sum up: 25 parameters for conv layer, 405 parameters for dense layer. 430 in total.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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