code: def decov(h, reduce="half_squared_sum"):
      """Computes the DeCov loss of ``h``
  
      The output is a variable whose value depends on the value of
      the option ``reduce``. If it is ``'no'``, it holds a matrix
      whose size is same as the number of columns of ``y``.
      If it is ``'half_squared_sum'``, it holds the half of the
      squared Frobenius norm (i.e. squared of the L2 norm of a matrix flattened
      to a vector) of the matrix.
  
      Args:
          h (:class:`~chainer.Variable` or :ref:`ndarray`):
              Variable holding a matrix where the first dimension
              corresponds to the batches.
          reduce (str): Reduction option. Its value must be either
              ``'half_squared_sum'`` or ``'no'``.
              Otherwise, :class:`ValueError` is raised.
  
      Returns:
          ~chainer.Variable:
              A variable holding a scalar of the DeCov loss.
              If ``reduce`` is ``'no'``, the output variable holds
              2-dimensional array matrix of shape ``(N, N)`` where
              ``N`` is the number of columns of ``y``.
              If it is ``'half_squared_sum'``, the output variable
              holds a scalar value.
  
      .. note::
  
         See https://arxiv.org/abs/1511.06068 for details.
  
      """
      return DeCov(reduce)(h)
  
file_path: chainer/chainer/functions/loss/decov.py
imports: from chainer import backend
  from chainer import function
  from chainer import utils
  from chainer.utils import type_check
label_desc: Use image node_id 1 for calling a global function with example usage: decov(h, reduce) and returns: DeCov