'Return a new learning rate.
The ``num_update`` is the upper bound of the number of updates applied to
every weight.
Assume the optimizer has updated *i*-th weight by *k_i* times, namely
``optimizer.update(i, weight_i)`` is called by *k_i* times. Then::
num_update = max([k_i for all i])
Parameters
num_update: int
the maximal number of updates applied to a weight.'

def __call__(self, num_update):

    raise NotImplementedError('must    override    this')
