docstr: Maintain a set of shadow variables "v" that is calculated by
  
      v[:] = (1 - 1/t) v + 1/t    heta
  
  The t is the number of training steps.
  
  It is also known as "Polyak-Rupert averaging" applied to SGD and was rediscovered in
  "Towards Optimal One Pass Large Scale Learning withAveraged Stochastic Gradient Descent"
   Wei Xu (2011).
  
  The idea is to average the parameters obtained by stochastic gradient descent.
  
  
  Parameters
  ----------
  params : ParameterDict
      The parameters that we are going to track.
docstr_tok: ["Maintain","a","set","of","shadow","variables","``","v","''","that","is","calculated","by","v","[",":","]","=","(","1","-","1\/t",")","v","+","1\/t","heta","The","t","is","the","number","of","training","steps",".","It","is","also","known","as","``","Polyak-Rupert","averaging","''","applied","to","SGD","and","was","rediscovered","in","''","Towards","Optimal","One","Pass","Large","Scale","Learning","withAveraged","Stochastic","Gradient","Descent","''","Wei","Xu","(","2011",")",".","The","idea","is","to","average","the","parameters","obtained","by","stochastic","gradient","descent",".","Parameters","--","--","--","--","--","params",":","ParameterDict","The","parameters","that","we","are","going","to","track","."]
code: def __init__(self, params=None):
      """Maintain a set of shadow variables "v" that is calculated by
  
          v[:] = (1 - 1/t) v + 1/t \theta
  
      The t is the number of training steps.
  
      It is also known as "Polyak-Rupert averaging" applied to SGD and was rediscovered in
      "Towards Optimal One Pass Large Scale Learning withAveraged Stochastic Gradient Descent"
       Wei Xu (2011).
  
      The idea is to average the parameters obtained by stochastic gradient descent.
  
  
      Parameters
      ----------
      params : ParameterDict
          The parameters that we are going to track.
      """
      self._track_params = None
      self._average_params = None
      self._initialized = False
      self._n_steps = 0
      if params is not None:
          self.apply(params)
  
imports: import warnings
  import numpy
  import mxnet
  from collections import defaultdict
  from mxnet.gluon import Parameter
  from mxnet.util import use_np
  from typing import Iterable, Optional, Tuple
  from collections import OrderedDict
  from mxnet.gluon.utils import shape_is_known
label_desc: Use image node_id 1 to create a new AverageSGDTracker object from inherited base classes: object with example: obj = AverageSGDTracker(params)