code: def group_normalization(x, groups, gamma, beta, eps=1e-5):
      """Group normalization function.
  
      This function implements a "group normalization"
      which divides the channels into groups and computes within each group
      the mean and variance, then normalize by these statistics,
      scales and shifts them.
  
      Args:
          x (:class:`~chainer.Variable` or :ref:`ndarray`): Batch tensors.
              First dimension of this value must be the size of minibatch and
              second dimension must be the number of channels.
              Moreover, this value must have one or more following dimensions,
              such as height and width.
          groups (int):
              The number of channel groups.
              This value must be a divisor of the number of channels.
          gamma (:class:`~chainer.Variable` or :ref:`ndarray`):
              Scaling parameter.
          beta (:class:`~chainer.Variable` or :ref:`ndarray`):
              Shifting parameter.
          eps (float): Epsilon value for numerical stability of normalization.
  
      Returns:
          ~chainer.Variable: The output variable which has the same shape
          as :math:`x`.
  
      See: `Group Normalization <https://arxiv.org/abs/1803.08494>`_
  
      .. seealso::
  
          :class:`~chainer.links.GroupNormalization` to manage the model
          parameters ``gamma`` and ``beta``.
  
      """
      return GroupNormalization(groups, eps).apply((x, gamma, beta))[0]
  
imports: import numpy
  import chainer
  from chainer import backend
  from chainer.backends import cuda
  from chainer import configuration
  from chainer import function_node
  from chainer.utils import type_check
label_desc: Use image node_id 1 for calling a global function with example usage: group_normalization(x, groups, gamma, beta, eps) and returns: GroupNormalization