mindspore.nn.PolynomialDecayLR
- class mindspore.nn.PolynomialDecayLR(learning_rate, end_learning_rate, decay_steps, power, update_decay_steps=False)[source]
- Calculates learning rate base on polynomial decay function. - For current step, the formula of computing decayed learning rate is: \[\begin{split}decayed\_learning\_rate = &(learning\_rate - end\_learning\_rate) *\\ &(1 - tmp\_step / tmp\_decay\_steps)^{power}\\ &+ end\_learning\_rate\end{split}\]- Where : \[tmp\_step= \min(current\_step, decay\_steps)\]- If update_decay_steps is true, update the value of \(tmp\_decay\_steps\) every decay_steps. The formula is : \[tmp\_decay\_steps = decay\_steps * ceil(current\_step / decay\_steps)\]- Parameters
- learning_rate (float) – The initial value of learning rate. 
- end_learning_rate (float) – The end value of learning rate. 
- decay_steps (int) – Number of steps to decay over. 
- power (float) – The power of polynomial. It must be greater than 0. 
- update_decay_steps (bool) – If - true, learning rate is decayed once every decay_steps time. Default:- False.
 
 - Inputs:
- global_step (Tensor) - The current step number. Shape is \(()\). 
 
- Outputs:
- Tensor. The learning rate value for the current step with shape \(()\). 
 - Raises
- TypeError – If learning_rate, end_learning_rate or power is not a float. 
- TypeError – If decay_steps is not an int or update_decay_steps is not a bool. 
- ValueError – If end_learning_rate is less than 0 or decay_steps is less than 1. 
- ValueError – If learning_rate or power is less than or equal to 0. 
 
 - Supported Platforms:
- Ascend- GPU
 - Examples - >>> import mindspore >>> from mindspore import Tensor, nn >>> >>> learning_rate = 0.1 >>> end_learning_rate = 0.01 >>> decay_steps = 4 >>> power = 0.5 >>> global_step = Tensor(2, mindspore.int32) >>> polynomial_decay_lr = nn.PolynomialDecayLR(learning_rate, end_learning_rate, decay_steps, power) >>> lr = polynomial_decay_lr(global_step) >>> net = nn.Dense(2, 3) >>> optim = nn.SGD(net.trainable_params(), learning_rate=lr)