mindspore.nn.WarmUpLR

查看源文件
class mindspore.nn.WarmUpLR(learning_rate, warmup_steps)[源代码]

预热学习率。

对于当前step,计算学习率的公式为:

\[warmup\_learning\_rate = learning\_rate * tmp\_step / warmup\_steps\]

其中,

\[tmp\_step= \min(current\_step, warmup\_steps)\]
参数:
  • learning_rate (float) - 学习率的初始值, learning_rate 的值必须大于0。

  • warmup_steps (int) - 学习率warmup的step数, warmup_steps 的值必须大于或等于1。

输入:
  • global_step (Tensor) - 当前step数,即current_step。shape为 \(()\)

输出:

标量Tensor。当前step的学习率值,shape为 \(()\)

异常:
  • TypeError - learning_rate 不是float。

  • TypeError - warmup_steps 不是int。

  • ValueError - warmup_steps 小于1。

  • ValueError - learning_rate 小于或等于0。

支持平台:

Ascend GPU CPU

样例:

>>> import mindspore
>>> from mindspore import Tensor, nn
>>>
>>> learning_rate = 0.1
>>> warmup_steps = 2
>>> global_step = Tensor(2, mindspore.int32)
>>> warmup_lr = nn.WarmUpLR(learning_rate, warmup_steps)
>>> lr = warmup_lr(global_step)
>>> net = nn.Dense(2, 3)
>>> optim = nn.SGD(net.trainable_params(), learning_rate=lr)