class_docstr: Decorrelated batch normalization layer.
  
  This link wraps the
  :func:`~chainer.functions.decorrelated_batch_normalization` and
  :func:`~chainer.functions.fixed_decorrelated_batch_normalization`
  functions. It works on outputs of linear or convolution functions.
  
  It runs in three modes: training mode, fine-tuning mode, and testing mode.
  
  In training mode, it normalizes the input by *batch statistics*. It also
  maintains approximated population statistics by moving averages, which can
  be used for instant evaluation in testing mode.
  
  In fine-tuning mode, it accumulates the input to compute *population
  statistics*. In order to correctly compute the population statistics, a
  user must use this mode to feed mini-batches running through whole training
  dataset.
  
  In testing mode, it uses pre-computed population statistics to normalize
  the input variable. The population statistics is approximated if it is
  computed by training mode, or accurate if it is correctly computed by
  fine-tuning mode.
  
  Args:
      size (int or tuple of ints): Size (or shape) of channel
          dimensions.
      groups (int): Number of groups to use for group whitening.
      decay (float): Decay rate of moving average
          which is used during training.
      eps (float): Epsilon value for numerical stability.
      dtype (numpy.dtype): Type to use in computing.
  
  See: `Decorrelated Batch Normalization <https://arxiv.org/abs/1804.08450>`_
  
  .. seealso::
     :func:`~chainer.functions.decorrelated_batch_normalization`,
     :func:`~chainer.functions.fixed_decorrelated_batch_normalization`
  
  Attributes:
      avg_mean (:ref:`ndarray`): Population mean.
      avg_projection (:ref:`ndarray`): Population
          projection.
      groups (int): Number of groups to use for group whitening.
      N (int): Count of batches given for fine-tuning.
      decay (float): Decay rate of moving average
          which is used during training.
      ~DecorrelatedBatchNormalization.eps (float): Epsilon value for
          numerical stability. This value is added to the batch variances.
class_docstr_tok: ["Decorrelated","batch","normalization","layer",".","This","link","wraps","the",":","func",":","`","~chainer.functions.decorrelated_batch_normalization","`","and",":","func",":","`","~chainer.functions.fixed_decorrelated_batch_normalization","`","functions",".","It","works","on","outputs","of","linear","or","convolution","functions",".","It","runs","in","three","modes",":","training","mode",",","fine-tuning","mode",",","and","testing","mode",".","In","training","mode",",","it","normalizes","the","input","by","*","batch","statistics","*",".","It","also","maintains","approximated","population","statistics","by","moving","averages",",","which","can","be","used","for","instant","evaluation","in","testing","mode",".","In","fine-tuning","mode",",","it","accumulates","the","input","to","compute","*","population","statistics","*",".","In","order","to","correctly","compute","the","population","statistics",",","a","user","must","use","this","mode","to","feed","mini-batches","running","through","whole","training","dataset",".","In","testing","mode",",","it","uses","pre-computed","population","statistics","to","normalize","the","input","variable",".","The","population","statistics","is","approximated","if","it","is","computed","by","training","mode",",","or","accurate","if","it","is","correctly","computed","by","fine-tuning","mode",".","Args",":","size","(","int","or","tuple","of","ints",")",":","Size","(","or","shape",")","of","channel","dimensions",".","groups","(","int",")",":","Number","of","groups","to","use","for","group","whitening",".","decay","(","float",")",":","Decay","rate","of","moving","average","which","is","used","during","training",".","eps","(","float",")",":","Epsilon","value","for","numerical","stability",".","dtype","(","numpy.dtype",")",":","Type","to","use","in","computing",".","See",":","`","Decorrelated","Batch","Normalization","<","https",":","\/\/arxiv.org\/abs\/1804.08450",">","`","_","..","seealso",":",":",":","func",":","`","~chainer.functions.decorrelated_batch_normalization","`",",",":","func",":","`","~chainer.functions.fixed_decorrelated_batch_normalization","`","Attributes",":","avg_mean","(",":","ref",":","`","ndarray","`",")",":","Population","mean",".","avg_projection","(",":","ref",":","`","ndarray","`",")",":","Population","projection",".","groups","(","int",")",":","Number","of","groups","to","use","for","group","whitening",".","N","(","int",")",":","Count","of","batches","given","for","fine-tuning",".","decay","(","float",")",":","Decay","rate","of","moving","average","which","is","used","during","training",".","~DecorrelatedBatchNormalization.eps","(","float",")",":","Epsilon","value","for","numerical","stability",".","This","value","is","added","to","the","batch","variances","."]
code: def serialize(self, serializer):
      if isinstance(serializer, serializer_mod.Deserializer):
          serializer = _PatchedDeserializer(
              serializer,
              {
                  "avg_mean": functools.partial(
                      fix_avg_mean, groups=self.groups
                  ),
                  "avg_projection": functools.partial(
                      fix_avg_projection, groups=self.groups
                  ),
              },
          )
      super(DecorrelatedBatchNormalization, self).serialize(serializer)
  
imports: import functools
  import warnings
  import numpy
  import chainer
  from chainer import configuration
  from chainer import functions
  from chainer import link
  import chainer.serializer
  from chainer.utils import argument
label_desc: Use image node_id 2 for calling the DecorrelatedBatchNormalization obj's underlying member method code with example usage: obj.serialize(serializer) without return types