mindspore.nn.CosineDecayLR
- class mindspore.nn.CosineDecayLR(min_lr, max_lr, decay_steps)[源代码]
基于余弦衰减函数计算学习率。
对于当前step,计算学习率的公式为:
\[\begin{split}decayed\_learning\_rate = &min\_lr + 0.5 * (max\_lr - min\_lr) *\\ &(1 + cos(\frac{current\_step}{decay\_steps}\pi))\end{split}\]- 参数:
min_lr (float) - 学习率的最小值。
max_lr (float) - 学习率的最大值。
decay_steps (int) - 进行衰减的step数。
- 输入:
global_step (Tensor) - 当前step数,即current_step。
- 输出:
标量Tensor。当前step的学习率值,shape为 \(()\)。
- 异常:
TypeError - min_lr 或 max_lr 不是float。
TypeError - decay_steps 不是整数。
ValueError - min_lr 小于0或 decay_steps 小于1。
ValueError - max_lr 小于或等于0。
- 支持平台:
Ascend
GPU
样例:
>>> import mindspore >>> from mindspore import Tensor, nn >>> >>> min_lr = 0.01 >>> max_lr = 0.1 >>> decay_steps = 4 >>> global_steps = Tensor(2, mindspore.int32) >>> cosine_decay_lr = nn.CosineDecayLR(min_lr, max_lr, decay_steps) >>> lr = cosine_decay_lr(global_steps) >>> net = nn.Dense(2, 3) >>> optim = nn.SGD(net.trainable_params(), learning_rate=lr)