mindspore.experimental.optim.lr_scheduler.SequentialLR

class mindspore.experimental.optim.lr_scheduler.SequentialLR(optimizer, schedulers, milestones, last_epoch=- 1)[源代码]

SequentialLR 接收一个将被顺序调用的学习率调度器列表 schedulers,及指定的间隔列表 milestonemilestone 设定了每个epoch哪个调度器被调用。

警告

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

参数:
异常:
  • ValueError - schedulers 中的 optimizer 与传入的 optimizer 不同。

  • ValueError - schedulers 中的 optimizerschedulers[0].optimizer 不同。

  • ValueError - milestones 的长度不等于 schedulers 的长度减1。

支持平台:

Ascend GPU CPU

样例:

>>> from mindspore.experimental import optim
>>> from mindspore import nn
>>> net = nn.Dense(3, 2)
>>> optimizer = optim.Adam(net.trainable_params(), 0.1)
>>> scheduler1 = optim.lr_scheduler.ConstantLR(optimizer, factor=0.1, total_iters=2)
>>> scheduler2 = optim.lr_scheduler.ExponentialLR(optimizer, gamma=0.9)
>>> scheduler = optim.lr_scheduler.SequentialLR(optimizer, schedulers=[scheduler1, scheduler2], milestones=[2])
>>> for i in range(6):
...     scheduler.step()
...     current_lr = scheduler.get_last_lr()
...     print(current_lr)
[Tensor(shape=[], dtype=Float32, value= 0.01)]
[Tensor(shape=[], dtype=Float32, value= 0.1)]
[Tensor(shape=[], dtype=Float32, value= 0.09)]
[Tensor(shape=[], dtype=Float32, value= 0.081)]
[Tensor(shape=[], dtype=Float32, value= 0.0729)]
[Tensor(shape=[], dtype=Float32, value= 0.06561)]
get_last_lr()[源代码]

返回当前使用的学习率。

step()[源代码]

按照定义的计算逻辑计算并修改学习率。