mindspore.experimental.optim.lr_scheduler.SequentialLR
- class mindspore.experimental.optim.lr_scheduler.SequentialLR(optimizer, schedulers, milestones, last_epoch=- 1)[源代码]
SequentialLR 接收一个将被顺序调用的学习率调度器列表 schedulers,及指定的间隔列表 milestone,milestone 设定了每个epoch哪个调度器被调用。
警告
这是一个实验性的动态学习率接口,需要和 mindspore.experimental.optim 下的接口配合使用。
- 参数:
optimizer (
mindspore.experimental.optim.Optimizer
) - 优化器实例。schedulers (list[
mindspore.experimental.optim.lr_scheduler.LRScheduler
]) - 被顺序执行的学习率调度器列表。milestones (list) - 反应里程碑节点的整数列表。
last_epoch (int,可选) - 当前scheduler的 step() 方法的执行次数。默认值:
-1
。
- 异常:
ValueError - schedulers 中的 optimizer 与传入的 optimizer 不同。
ValueError - schedulers 中的 optimizer 与 schedulers[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)]