code: def _simple_group_normalization(x, groups, gamma, beta, eps=1e-5):
      batch_size, channels = x.shape[:2]
      x_reshape = x.reshape(batch_size, groups, channels // groups, -1)
  
      mean = numpy.mean(x_reshape, axis=(2, 3), keepdims=True)
      var = numpy.var(x_reshape, axis=(2, 3), keepdims=True)
      std = numpy.sqrt(var + eps, dtype=x.dtype)
  
      x_hat = (x_reshape - mean) / std
      x_hat = x_hat.reshape(x.shape)
  
      for i in six.moves.xrange(x.ndim):
          if i != 1:  # except for channel dim
              gamma = numpy.expand_dims(gamma, i)
              beta = numpy.expand_dims(beta, i)
  
      return x_hat * gamma + beta
  
file_path: chainer/tests/chainer_tests/functions_tests/normalization_tests/test_group_normalization.py
imports: import numpy
  import six
  from chainer import functions
  import chainer.functions.normalization.group_normalization
  from chainer import testing
label_desc: Use image node_id 1 for calling a global function with example usage: _simple_group_normalization(x, groups, gamma, beta, eps) and returns: unknown