class_docstr: The base class inherited by all optimizers.
  
  Parameters
  ----------
  rescale_grad : float, optional, default 1.0
      Multiply the gradient with `rescale_grad` before updating. Often
      choose to be ``1.0/batch_size``.
  
  param_idx2name : dict from int to string, optional, default None
      A dictionary that maps int index to string name.
  
  clip_gradient : float, optional, default None
      Clip the gradient by projecting onto the box ``[-clip_gradient, clip_gradient]``.
  
  learning_rate : float, optional, default None
      The initial learning rate. If None, the optimization will use the
      learning rate from ``lr_scheduler``. If not None, it will overwrite
      the learning rate in ``lr_scheduler``. If None and ``lr_scheduler``
      is also None, then it will be set to 0.01 by default.
  
  lr_scheduler : LRScheduler, optional, default None
      The learning rate scheduler.
  
  wd : float, optional, default 0.0
      The weight decay (or L2 regularization) coefficient. Modifies objective
      by adding a penalty for having large weights.
  
  sym: Symbol, optional, default None
      The Symbol this optimizer is applying to.
  
  begin_num_update : int, optional, default 0
      The initial number of updates.
  
  multi_precision : bool, optional, default False
     Flag to control the internal precision of the optimizer.
     False: results in using the same precision as the weights (default),
     True: makes internal 32-bit copy of the weights and applies gradients
     in 32-bit precision even if actual weights used in the model have lower precision.
     Turning this on can improve convergence and accuracy when training with float16.
  
  param_dict : dict of int -> gluon.Parameter, default None
      Dictionary of parameter index to gluon.Parameter, used to lookup parameter attributes
      such as lr_mult, wd_mult, etc. param_dict shall not be deep copied.
  
  aggregate_num : int, optional, default None
      Number of weights to be aggregated in a list.
      They are passed to the optimizer for a single optimization step.
      In default, only one weight is aggregated.
      When `aggregate_num` is set to numpy.inf, all the weights are aggregated.
  
  use_fused_step : bool, optional, default None
      Whether or not to use fused kernels for optimizer.
      When use_fused_step=False, step is called,
      otherwise, fused_step is called.
  
  Properties
  ----------
  learning_rate : float
      The current learning rate of the optimizer. Given an Optimizer object
      optimizer, its learning rate can be accessed as optimizer.learning_rate.
class_docstr_tok: ["The","base","class","inherited","by","all","optimizers",".","Parameters","--","--","--","--","--","rescale_grad",":","float",",","optional",",","default","1.0","Multiply","the","gradient","with","`","rescale_grad","`","before","updating",".","Often","choose","to","be","``","1.0\/batch_size","``",".","param_idx2name",":","dict","from","int","to","string",",","optional",",","default","None","A","dictionary","that","maps","int","index","to","string","name",".","clip_gradient",":","float",",","optional",",","default","None","Clip","the","gradient","by","projecting","onto","the","box","``","[","-clip_gradient",",","clip_gradient","]","``",".","learning_rate",":","float",",","optional",",","default","None","The","initial","learning","rate",".","If","None",",","the","optimization","will","use","the","learning","rate","from","``","lr_scheduler","``",".","If","not","None",",","it","will","overwrite","the","learning","rate","in","``","lr_scheduler","``",".","If","None","and","``","lr_scheduler","``","is","also","None",",","then","it","will","be","set","to","0.01","by","default",".","lr_scheduler",":","LRScheduler",",","optional",",","default","None","The","learning","rate","scheduler",".","wd",":","float",",","optional",",","default","0.0","The","weight","decay","(","or","L2","regularization",")","coefficient",".","Modifies","objective","by","adding","a","penalty","for","having","large","weights",".","sym",":","Symbol",",","optional",",","default","None","The","Symbol","this","optimizer","is","applying","to",".","begin_num_update",":","int",",","optional",",","default","0","The","initial","number","of","updates",".","multi_precision",":","bool",",","optional",",","default","False","Flag","to","control","the","internal","precision","of","the","optimizer",".","False",":","results","in","using","the","same","precision","as","the","weights","(","default",")",",","True",":","makes","internal","32-bit","copy","of","the","weights","and","applies","gradients","in","32-bit","precision","even","if","actual","weights","used","in","the","model","have","lower","precision",".","Turning","this","on","can","improve","convergence","and","accuracy","when","training","with","float16",".","param_dict",":","dict","of","int","-",">","gluon.Parameter",",","default","None","Dictionary","of","parameter","index","to","gluon.Parameter",",","used","to","lookup","parameter","attributes","such","as","lr_mult",",","wd_mult",",","etc",".","param_dict","shall","not","be","deep","copied",".","aggregate_num",":","int",",","optional",",","default","None","Number","of","weights","to","be","aggregated","in","a","list",".","They","are","passed","to","the","optimizer","for","a","single","optimization","step",".","In","default",",","only","one","weight","is","aggregated",".","When","`","aggregate_num","`","is","set","to","numpy.inf",",","all","the","weights","are","aggregated",".","use_fused_step",":","bool",",","optional",",","default","None","Whether","or","not","to","use","fused","kernels","for","optimizer",".","When","use_fused_step=False",",","step","is","called",",","otherwise",",","fused_step","is","called",".","Properties","--","--","--","--","--","learning_rate",":","float","The","current","learning","rate","of","the","optimizer",".","Given","an","Optimizer","object","optimizer",",","its","learning","rate","can","be","accessed","as","optimizer.learning_rate","."]
docstr: Sets an individual weight decay multiplier for each parameter.
  
  .. note:: The default weight decay multiplier for a `Variable`
      can be set with its `wd_mult` argument in the constructor.
  
  Parameters
  ----------
  args_wd_mult : dict of string/int to float
      For each of its key-value entries, the weight decay multipler for the
      parameter specified in the key will be set as the given value.
  
      You can specify the parameter with either its name or its index.
      If you use the name, you should pass `sym` in the constructor,
      and the name you specified in the key of `args_lr_mult` should match
      the name of the parameter in `sym`. If you use the index, it should
      correspond to the index of the parameter used in the `update` method.
  
      Specifying a parameter by its index is only supported for backward
      compatibility, and we recommend to use the name instead.
docstr_tok: ["Sets","an","individual","weight","decay","multiplier","for","each","parameter",".","..","note",":",":","The","default","weight","decay","multiplier","for","a","`","Variable","`","can","be","set","with","its","`","wd_mult","`","argument","in","the","constructor",".","Parameters","--","--","--","--","--","args_wd_mult",":","dict","of","string\/int","to","float","For","each","of","its","key-value","entries",",","the","weight","decay","multipler","for","the","parameter","specified","in","the","key","will","be","set","as","the","given","value",".","You","can","specify","the","parameter","with","either","its","name","or","its","index",".","If","you","use","the","name",",","you","should","pass","`","sym","`","in","the","constructor",",","and","the","name","you","specified","in","the","key","of","`","args_lr_mult","`","should","match","the","name","of","the","parameter","in","`","sym","`",".","If","you","use","the","index",",","it","should","correspond","to","the","index","of","the","parameter","used","in","the","`","update","`","method",".","Specifying","a","parameter","by","its","index","is","only","supported","for","backward","compatibility",",","and","we","recommend","to","use","the","name","instead","."]
code: def set_wd_mult(self, args_wd_mult):
      """Sets an individual weight decay multiplier for each parameter.
  
      .. note:: The default weight decay multiplier for a `Variable`
          can be set with its `wd_mult` argument in the constructor.
  
      Parameters
      ----------
      args_wd_mult : dict of string/int to float
          For each of its key-value entries, the weight decay multipler for the
          parameter specified in the key will be set as the given value.
  
          You can specify the parameter with either its name or its index.
          If you use the name, you should pass `sym` in the constructor,
          and the name you specified in the key of `args_lr_mult` should match
          the name of the parameter in `sym`. If you use the index, it should
          correspond to the index of the parameter used in the `update` method.
  
          Specifying a parameter by its index is only supported for backward
          compatibility, and we recommend to use the name instead.
      """
      self.wd_mult = {}
      if self.sym_info:
          attr, arg_names = self.sym_info
          for name in arg_names:
              if name in attr and "__wd_mult__" in attr[name]:
                  self.wd_mult[name] = float(attr[name]["__wd_mult__"])
      self.wd_mult.update(args_wd_mult)
  
imports: import warnings
  import numpy
  from ..ndarray import NDArray, zeros, cast
  from ..util import is_np_array
label_desc: Use image node_id 13 for calling the Optimizer obj's underlying member method code with example usage: obj.set_wd_mult(args_wd_mult) without return types