mindspore.experimental.optim.lr_scheduler.LambdaLR

查看源文件
class mindspore.experimental.optim.lr_scheduler.LambdaLR(optimizer, lr_lambda, last_epoch=- 1)[源代码]

将每个参数组的学习率设定为初始学习率乘以指定的 lr_lambda 函数。当 last_epoch = -1 时,将学习率设置成初始学习率。

警告

这是一个实验性的动态学习率接口,需要和 mindspore.experimental.optim 下的接口配合使用。

参数:
  • optimizer (mindspore.experimental.optim.Optimizer) - 优化器实例。

  • lr_lambda (Union(function, list)) - 一个关于 last_epoch 的匿名函数,或类似函数的列表,列表中每个函数对应 optimizer.param_groups 中的每个参数组。

  • last_epoch (int,可选) - 当前scheduler的 step() 方法的执行次数。默认值:-1

异常:
  • ValueError - lr_lambda 的长度不等于参数组数目。

支持平台:

Ascend GPU CPU

样例:

>>> from mindspore import nn
>>> from mindspore.experimental import optim
>>> net = nn.Dense(2, 3)
>>> optimizer = optim.Adam(net.trainable_params(), 0.01)
>>> lmbda = lambda epoch: 0.9 ** epoch
>>> scheduler = optim.lr_scheduler.LambdaLR(optimizer, lr_lambda=[lmbda])
>>> for i in range(3):
...     scheduler.step()
...     current_lr = scheduler.get_last_lr()
...     print(current_lr)
[Tensor(shape=[], dtype=Float32, value= 0.009)]
[Tensor(shape=[], dtype=Float32, value= 0.0081)]
[Tensor(shape=[], dtype=Float32, value= 0.00729)]