title: Applying group convolutions where each group is constrained to have the same weights
body: <p>Group convolution is available in Keras using code here for example: <a href="https://github.com/tensorflow/tensorflow/issues/34024#issuecomment-552034933" rel="nofollow noreferrer">https://github.com/tensorflow/tensorflow/issues/34024#issuecomment-552034933</a></p>
  
  <p>However, for my specific application, I require that during training, each of the groups in the group convolution has the same weights.  For example, if I have a tensor of shape 8x8x32 and I want to have <code>groups = 2</code> and filter_size=3x3, then normal group convolution will use two 3x3x16 tensors to convolve across the first half of the 8x8x32 and the second half of the 8x8x32.  I want to ensure that the two 3x3x16 tensors have the same weights, even during training.</p>
  
  <p>I can do this by getting rid of my group convolution framework and splitting my 8x8x32 tensor into two 8x8x16 tensors, then running each of them through a single non-grouped 3x3x16 convolution.  However, by not using a group convolution framework, the code runs slower because the tasks are not run in parallel.</p>
  
  <p>How can I use the speed upgrade that group convolution offers in Keras while constraining the weights in each group to be the same?</p>