'Sets an individual learning rate multiplier for each parameter.
If you specify a learning rate multiplier for a parameter, then
the learning rate for the parameter will be set as the product of
the global learning rate `self.lr` and its multiplier.
.. note:: The default learning rate multiplier of a `Variable`
can be set with `lr_mult` argument in the constructor.
Parameters
args_lr_mult : dict of str/int to float
For each of its key-value entries, the learning rate 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_lr_mult(self, args_lr_mult):

    self.lr_mult = {}
    if (self.sym is not None):
        attr = self.sym.attr_dict()
        for name in self.sym.list_arguments():
            if ((name in attr) and ('__lr_mult__' in attr[name])):
                self.lr_mult[name] = float(attr[name]['__lr_mult__'])
    self.lr_mult.update(args_lr_mult)
