mindspore.nn.piecewise_constant_lr

查看源文件
mindspore.nn.piecewise_constant_lr(milestone, learning_rates)[源代码]

获取分段常量学习率。每个step的学习率将会被存放在一个列表中。

通过给定的 milestonelearning_rates 计算学习率。设 milestone 的值为 (M1,M2,...,Mt,...,MN)learning_rates 的值为 (x1,x2,...,xt,...,xN) 。N是 milestone 的长度。 设 y 为输出学习率,那么对于第 i 步,计算 y[i] 的公式为:

y[i]=xt, for i[Mt1,Mt)
参数:
  • milestone (Union[list[int], tuple[int]]) - milestone列表。当达到指定的step时,使用对应的 learning_rates。 此列表是一个单调递增的列表。列表中的元素必须大于0。

  • learning_rates (Union[list[float], tuple[float]]) - 学习率列表。

返回:

list[float]。列表的大小为 MN

异常:
  • TypeError - milestonelearning_rates 既不是tuple也不是list。

  • ValueError - milestonelearning_rates 的长度不相等。

  • ValueError - milestone 中的不是单调递增的。

支持平台:

Ascend GPU CPU

样例:

>>> import mindspore.nn as nn
>>>
>>> milestone = [2, 5, 10]
>>> learning_rates = [0.1, 0.05, 0.01]
>>> lr = nn.piecewise_constant_lr(milestone, learning_rates)
>>> # learning_rates = 0.1  if step <= 2
>>> # learning_rates = 0.05  if 2 < step <= 5
>>> # learning_rates = 0.01  if 5 < step <= 10
>>> net = nn.Dense(2, 3)
>>> optim = nn.SGD(net.trainable_params(), learning_rate=lr)