'Sets an individual weight decay multiplier for each parameter.
By default, if `param_idx2name` was provided in the
constructor, the weight decay multipler is set as 0 for all
parameters whose name don\'t end with ``_weight`` or
``_gamma``.
.. 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.'

def set_wd_mult(self, args_wd_mult):

    self.wd_mult = {}
    for n in self.idx2name.values():
        if (not (n.endswith('_weight') or n.endswith('_gamma'))):
            self.wd_mult[n] = 0.0
    if (self.sym is not None):
        attr = self.sym.attr_dict()
        for name in self.sym.list_arguments():
            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)
