class_docstr: The model averaging is based on paper
  "Stochastic Gradient Descent for Non-smooth Optimization: Convergence
  Results and Optimal Averaging Schemes",
  (http://proceedings.mlr.press/v28/shamir13.pdf), which implements
  polynomial-decay averaging, parameterized by eta. When eta = 0, it is
  equivalent to simple average over all iterations with same weights.
docstr: Parameters
  ----------
  model
      The model of the current iteration.
  
  Returns
  -------
  The averaged model, None if the averaging hasn't started.
docstr_tok: ["Parameters","--","--","--","--","--","model","The","model","of","the","current","iteration",".","Returns","--","--","--","-","The","averaged","model",",","None","if","the","averaging","has","n't","started","."]
code: def apply(self, model: nn.HybridBlock) -> Optional[Dict]:
      r"""
      Parameters
      ----------
      model
          The model of the current iteration.
  
      Returns
      -------
      The averaged model, None if the averaging hasn't started.
      """
  
      if self.averaging_started:
          self.update_average(model)
  
      return self.averaged_model
  
imports: from typing import Any, Dict, List, Optional
  import logging
  import mxnet
  import mxnet.gluon.nn
  from mxnet import gluon
  from gluonts.core.component import validated
  from .callback import Callback
label_desc: Use image node_id 3 for calling the IterationAveragingStrategy obj's underlying member method code with example usage: obj.apply(model) and returns: self