NoamDecay

注意:该API仅支持【动态图】模式

  • class paddle.fluid.dygraph.NoamDecay(d_model, warmup_steps, begin=1, step=1, dtype='float32')[源代码]

该接口提供Noam衰减学习率的功能。

Noam衰减的计算方式如下。

NoamDecay - 图1

关于Noam衰减的更多细节请参考 attention is all you need

式中,

  • NoamDecay - 图2 : 衰减后的学习率。

式子中各参数详细介绍请看参数说明。

  • 参数:
    • d NoamDecay - 图3 model (Variable|int) - 模型的输入、输出向量特征维度,为超参数。如果设置为Variable类型值,则数据类型可以为int32或int64的标量Tensor,也可以设置为Python int。
    • warmup_steps (Variable|int) - 预热步数,为超参数。如果设置为Variable类型,则数据类型为int32或int64的标量Tensor,也可以设置为为Python int。
    • begin (int,可选) – 起始步。即以上运算式子中global_steps的初始值。默认值为0。
    • step (int,可选) – 步大小。即以上运算式子中global_steps的递增值。默认值为1。
    • dtype (str,可选) – 学习率值的数据类型,可以为"float32", "float64"。默认值为"float32"。

返回: 无

代码示例

  1. import paddle.fluid as fluid
  2. warmup_steps = 100
  3. learning_rate = 0.01
  4. with fluid.dygraph.guard():
  5. optimizer = fluid.optimizer.SGD(
  6. learning_rate = fluid.dygraph.NoamDecay(
  7. 1/(warmup_steps *(learning_rate ** 2)),
  8. warmup_steps) )