Answers.Body: <p>The number of parameters is <code>filters*input_channels*output_channels</code></p>
  
  <p>Groups are formed among input and output channels.</p>
  
  <p>So instead of <code>input_channels*output_channels</code> with two groups you get <code>(input_channels/2)*(output_channels/2) + (input_channels/2)*(output_channels/2)</code></p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-04-12T00:58:05.953Z
Answers.LastActivityDate: 2019-04-12T00:58:05.953Z
Answers.UserDisplayName: j314erre
Body: <p>I think I don't understand group convolutions well.</p>
  <p>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 <span class="math-container">$3 \times 3$</span>, 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.</p>
  <p>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 <span class="math-container">$50*9=450$</span> 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?</p>
  <p>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)?</p>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2019-04-11T03:01:29.063Z
Comments.Text: Hi. Could you edit your question to include a link to the definition of group convolution that you're using?
Comments.UserDisplayName: Philip Raeisghasem
Tags: <convolutional-neural-networks><convolution><filters>
Title: How is the number of parameters reduced in the group convolution?
UserDisplayName: Alex Marshall
ThreadText: # How is the number of parameters reduced in the group convolution?
  
  (Asked by: username_0 on 2019-04-11)
  
  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)?
  
  **Tags:** convolutional-neural-networks, convolution, filters
  > **Comments:**
  > **username_1**: Hi. Could you edit your question to include a link to the definition of group convolution that you're using?  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_2 on 2019-04-12. Score: 2
  
  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)`
  
  
  ---
  
  