original_docstring: 
      grouped convolution
  
  
      Parameters
      ----------
      x:
          Input tensor of with `channels_last` data format
      in_channels:
          number of input channels
      out_channels:
          number of output channels
      groups:
          number of groups per channel
      kernel: int(1)
          An integer or tuple/list of 2 integers, specifying the
          width and height of the 2D convolution window.
          Can be a single integer to specify the same value for
          all spatial dimensions.
      stride: int(1)
          An integer or tuple/list of 2 integers,
          specifying the strides of the convolution along the width and height.
          Can be a single integer to specify the same value for all spatial dimensions.
      name: str
          A string to specifies the layer name
  
      Returns
      -------
  
      
docstring: grouped convolution
  Parameters
  
  Input tensor of with `channels_last` data format
  in_channels:
  number of input channels
  out_channels:
  number of output channels
  groups:
  number of groups per channel
  kernel: int(1)
  An integer or tuple/list of 2 integers, specifying the
  width and height of the 2D convolution window.
  Can be a single integer to specify the same value for
  all spatial dimensions.
  stride: int(1)
  An integer or tuple/list of 2 integers,
  specifying the strides of the convolution along the width and height.
  Can be a single integer to specify the same value for all spatial dimensions.
  name: str
  A string to specifies the layer name
  
  Returns
docstring_tokens: grouped convolution Parameters Input tensor of with ` channels_last ` data format in_channels : number of input channels out_channels : number of output channels groups : number of groups per channel kernel : int ( 1 ) An integer or tuple / list of 2 integers specifying the width and height of the 2D convolution window . Can be a single integer to specify the same value for all spatial dimensions . stride : int ( 1 ) An integer or tuple / list of 2 integers specifying the strides of the convolution along the width and height . Can be a single integer to specify the same value for all spatial dimensions . name : str A string to specifies the layer name Returns
code: def _group_conv(x, in_channels, out_channels, groups, kernel=1, stride=1, name=''):
      """
      grouped convolution
  
  
      Parameters
      ----------
      x:
          Input tensor of with `channels_last` data format
      in_channels:
          number of input channels
      out_channels:
          number of output channels
      groups:
          number of groups per channel
      kernel: int(1)
          An integer or tuple/list of 2 integers, specifying the
          width and height of the 2D convolution window.
          Can be a single integer to specify the same value for
          all spatial dimensions.
      stride: int(1)
          An integer or tuple/list of 2 integers,
          specifying the strides of the convolution along the width and height.
          Can be a single integer to specify the same value for all spatial dimensions.
      name: str
          A string to specifies the layer name
  
      Returns
      -------
  
      """
      if groups == 1:
          return Conv2D(filters=out_channels, kernel_size=kernel, padding='same',
                        use_bias=False, strides=stride, name=name)(x)
  
      # number of intput channels per group
      ig = in_channels // groups
      group_list = []
  
      assert out_channels % groups == 0
  
      for i in range(groups):
          offset = i * ig
          group = Lambda(lambda z: z[:, :, :, offset: offset + ig], name='%s/g%d_slice' % (name, i))(x)
          group_list.append(Conv2D(int(0.5 + out_channels / groups), kernel_size=kernel, strides=stride,
                                   use_bias=False, padding='same', name='%s_/g%d' % (name, i))(group))
      return Concatenate(name='%s/concat' % name)(group_list)
code_tokens: def _group_conv ( x , in_channels , out_channels , groups , kernel = 1 , stride = 1 , name = '' ) : if groups == 1 : return Conv2D ( filters = out_channels , kernel_size = kernel , padding = 'same' , use_bias = False , strides = stride , name = name ) ( x ) ig = in_channels // groups group_list = [ ] assert out_channels % groups == 0 for i in range ( groups ) : offset = i * ig group = Lambda ( lambda z : z [ : , : , : , offset : offset + ig ] , name = '%s/g%d_slice' % ( name , i ) ) ( x ) group_list . append ( Conv2D ( int ( 0.5 + out_channels / groups ) , kernel_size = kernel , strides = stride , use_bias = False , padding = 'same' , name = '%s_/g%d' % ( name , i ) ) ( group ) ) return Concatenate ( name = '%s/concat' % name ) ( group_list )
short_docstring: grouped convolution
  Parameters
short_docstring_tokens: grouped convolution Parameters
comment: """
      grouped convolution
  
  
      Parameters
      ----------
      x:
          Input tensor of with `channels_last` data format
      in_channels:
          number of input channels
      out_channels:
          number of output channels
      groups:
          number of groups per channel
      kernel: int(1)
          An integer or tuple/list of 2 integers, specifying the
          width and height of the 2D convolution window.
          Can be a single integer to specify the same value for
          all spatial dimensions.
      stride: int(1)
          An integer or tuple/list of 2 integers,
          specifying the strides of the convolution along the width and height.
          Can be a single integer to specify the same value for all spatial dimensions.
      name: str
          A string to specifies the layer name
  
      Returns
      -------
  
      """$SEP$# number of intput channels per group