NoamDecay_cn.rst 1.7 KB
Newer Older
H
Hao Wang 已提交
1 2 3 4 5 6 7
.. _cn_api_fluid_dygraph_NoamDecay:

NoamDecay
-------------------------------

.. py:class:: paddle.fluid.dygraph.NoamDecay(d_model, warmup_steps, begin=1, step=1, dtype='float32')

D
DuYao 已提交
8
该接口提供Noam衰减学习率的功能。
H
Hao Wang 已提交
9

D
DuYao 已提交
10 11 12 13 14 15 16
Noam衰减的计算方式如下。

.. math::

    decayed\_learning\_rate = d_{model}^{-0.5} * min(global\_steps^{-0.5}, global\_steps * warmup\_steps^{-1.5})

关于Noam衰减的更多细节请参考 `attention is all you need <https://arxiv.org/pdf/1706.03762.pdf>`_
H
Hao Wang 已提交
17

D
DuYao 已提交
18
式中,
H
Hao Wang 已提交
19

D
DuYao 已提交
20 21
- :math:`decayed\_learning\_rate` : 衰减后的学习率。
式子中各参数详细介绍请看参数说明。
H
Hao Wang 已提交
22 23

参数:
D
DuYao 已提交
24 25 26 27 28 29 30
    - **d$_{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"。

返回: 无
H
Hao Wang 已提交
31 32 33 34 35 36 37 38 39 40 41 42 43

**代码示例**

.. code-block:: python

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