3
$\begingroup$

I think I don't understand group convolutions well.

Say you have 2 groups. This means that the number of parameters would be reduced in half. So, assuming you have an image and 100 channels, with a filter size of $3 \times 3$, you would have 900 parameters (ignore the bias for this example). If you separate this into 2 groups, if I understand it well, you would have 2 groups of 50 channels.

This can be made faster, by running the 2 groups in parallel, but how does the number of parameters get halved? Isn't each group having $50*9=450$ parameters, so, in total, you still have 900 parameters? Do they mean that the number of parameters that the backpropagation goes over (in each branch) gets halved?

Because overall, I don't see how it can get reduced. Also, is there a downside in using more groups (even going to 100 groups of 1 channel each)?

$\endgroup$
1
  • 1
    $\begingroup$ Hi. Could you edit your question to include a link to the definition of group convolution that you're using? $\endgroup$ Apr 11 '19 at 3:01
1
$\begingroup$

The number of parameters is filters*input_channels*output_channels

Groups are formed among input and output channels.

So instead of input_channels*output_channels with two groups you get (input_channels/2)*(output_channels/2) + (input_channels/2)*(output_channels/2)

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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