# Confused about group convolution

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 u have an image and 100 channels, with a filter size of 3x3, you would have 900 parameters (ignore the bias for this example). If you separate this in 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 gets 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)? Thank you!

• Hi. Could you edit your question to include a link to the definition of group convolution that you're using? – Philip Raeisghasem Apr 11 '19 at 3:01

The number of parameters is filters*input_channels*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)