mindspore.nn.ExponentialDecayLR
- class mindspore.nn.ExponentialDecayLR(learning_rate, decay_rate, decay_steps, is_stair=False)[源代码]
基于指数衰减函数计算学习率。
对于当前step,计算学习率的公式为:
\[decayed\_learning\_rate = learning\_rate * decay\_rate^{p}\]其中,
\[p = \frac{current\_step}{decay\_steps}\]如果 is_stair 为True,则公式为:
\[p = floor(\frac{current\_step}{decay\_steps})\]- 参数:
learning_rate (float) - 学习率的初始值。
decay_rate (float) - 衰减率。
decay_steps (int) - 进行衰减的step数。
is_stair (bool) - 如果为True,则学习率每 decay_steps 步衰减一次。默认值:False。
- 输入:
global_step (Tensor) - 当前step数,即current_step。
- 输出:
标量Tensor。当前step的学习率值,shape为 \(()\)。
- 异常:
TypeError - learning_rate 或 decay_rate 不是float。
TypeError - decay_steps 不是int或 is_stair 不是bool。
ValueError - decay_steps 小于1。
ValueError - learning_rate 或 decay_rate 小于或等于0。
- 支持平台:
Ascend
GPU
CPU
样例:
>>> import mindspore >>> from mindspore import Tensor, nn >>> >>> learning_rate = 0.1 >>> decay_rate = 0.9 >>> decay_steps = 4 >>> global_step = Tensor(2, mindspore.int32) >>> exponential_decay_lr = nn.ExponentialDecayLR(learning_rate, decay_rate, decay_steps) >>> result = exponential_decay_lr(global_step) >>> print(result) 0.09486833