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
  ----------
  metric
      The criteria to trigger averaging.
  epoch
      The epoch to start averaging.
  
  Returns
  -------
docstr_tok: ["Parameters","--","--","--","--","--","metric","The","criteria","to","trigger","averaging",".","epoch","The","epoch","to","start","averaging",".","Returns","--","--","--","-"]
code: def update_average_trigger(
      self, metric: Any = None, epoch: int = 0, **kwargs
  ):
      r"""
      Parameters
      ----------
      metric
          The criteria to trigger averaging.
      epoch
          The epoch to start averaging.
  
      Returns
      -------
      """
      raise NotImplementedError()
  
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 2 for calling the IterationAveragingStrategy obj's underlying member method code with example usage: obj.update_average_trigger(metric, epoch) without return types