提交 fedfede3 编写于 作者: Z zhouwei25

add chinese doc of new api(ReduceLROnPlatear)

上级 dbb89b47
...@@ -7,30 +7,29 @@ ReduceLROnPlateau ...@@ -7,30 +7,29 @@ ReduceLROnPlateau
.. py:class:: paddle.fluid.dygraph.ReduceLROnPlateau(learning_rate, mode='min', decay_rate=0.1, patience=10, threshold=1e-4, threshold_mode='rel', cooldown=0, min_lr=0, dtype='float32') .. py:class:: paddle.fluid.dygraph.ReduceLROnPlateau(learning_rate, mode='min', decay_rate=0.1, patience=10, threshold=1e-4, threshold_mode='rel', cooldown=0, min_lr=0, dtype='float32')
该接口提供 ``loss`` 自适应的学习率衰减策略。当 ``loss`` 停止下降时,降低学习率。其思想是:一旦模型表现不再提升,将学习率降低2-10倍对模型的训练往往有益。 该接口 ``loss`` 自适应的学习率衰减策略。当 ``loss`` 停止下降时,降低学习率。其思想是:一旦模型表现不再提升,将学习率降低2-10倍对模型的训练往往有益。
``loss`` 是传入到该类的方法 ``step`` 中的参数,其必须是shape为[1]的1-D Tensor。 如果 ``loss`` 停止下降超过 ``patience`` 个epoch,学习率将会减小为 ``loss`` 是传入到该类方法 ``step`` 中的参数,其必须是shape为[1]的1-D Tensor。 如果 ``loss`` 停止下降超过 ``patience`` 个epoch,学习率将会减小为
`learning_rate * decay_rate` 。(特殊用法时,可以将 ``mode`` 设置为 `'max'` , 该模式下,如果 ``loss`` 停止上升超过 ``patience`` 个epoch, `learning_rate * decay_rate` 。
学习率也将减小为 `learning_rate * decay_rate` 。)
此外,每降低一次学习率后,重新恢复正常操作会等待 ``cooldown`` 个epoch,在该等待期间,将无视 ``loss`` 的变化情况。 此外,每降低一次学习率后,重新恢复正常操作会等待 ``cooldown`` 个epoch,在该等待期间,将无视 ``loss`` 的变化情况。
参数: 参数:
- **learning_rate** (Variable|float|int) - 初始学习率。其类型可以是Python的 float 或 int 类型。也可以是shape为[1]的 - **learning_rate** (Variable|float|int) - 初始学习率。其类型可以是Python的 float 或 int 类型。也可以是shape为[1]的
1-D Tensor,且相应数据类型为"float32" 或 "float64"。 1-D Tensor,且相应数据类型为"float32" 或 "float64"。
- **mode** (str,可选) - `'min'` 和 `'max'` 之一。一般情况下,为 `'min'` ,当 ``loss`` 停止下降时学习率将减小;特殊用法时,可以 - **mode** (str,可选) - `'min'` 和 `'max'` 之一。通常情况下,为 `'min'` ,此时当 ``loss`` 停止下降时学习率将减小。默认:`'min'` 。
将其设置为 `'max'` ,此时当 ``loss`` 停止上升时学习率将减小。默认:`'min'` 。 (特殊用法时,可以将其设置为 `'max'` ,此时当 ``loss`` 停止上升时学习率将减小)
- **decay_rate** (float,可选) - 学习率衰减的比例。`new_lr = origin_lr * decay_rate` ,它是值小于1.0的float型数字,默认: 0.1。 - **decay_rate** (float,可选) - 学习率衰减的比例。`new_lr = origin_lr * decay_rate` ,它是值小于1.0的float型数字,默认: 0.1。
- **patience** (int,可选) - 当监控指标连续 ``patience`` 个epoch没有提升时,学习率才会减小。默认:10。 - **patience** (int,可选) - 当 ``loss`` 连续 ``patience`` 个epoch没有提升时,学习率才会减小。默认:10。
- **threshold** (float,可选) - ``threshold`` 和 ``threshold_mode`` 两个参数将会决定监测指标最低提升的阈值。小于该阈值的提升 - **threshold** (float,可选) - ``threshold`` 和 ``threshold_mode`` 两个参数将会决定 ``loss`` 最小变化的阈值。小于该阈值的变化
将会被无视,这使得仅有较大的提升会被关注。默认:1e-4。 将会被忽视。默认:1e-4。
- **threshold_mode** (str,可选) - `'rel'` 和 `'abs'` 之一。在 `'rel'` 模式下,监测指标的最低提升阈值是 `last_loss * threshold` , - **threshold_mode** (str,可选) - `'rel'` 和 `'abs'` 之一。在 `'rel'` 模式下, ``loss`` 最小变化的阈值是 `last_loss * threshold` ,
其中 ``last_loss`` 是监测指标在上个epoch的值。在 `'abs'` 模式下,监测指标的最低提升阈值是 `threshold` 。 默认:`'rel'`。 其中 ``last_loss`` 是 ``loss`` 在上个epoch的值。在 `'abs'` 模式下,``loss`` 最小变化的阈值是 `threshold` 。 默认:`'rel'`。
- **cooldown** (int,可选) - 在学习速率被降低之后,重新恢复正常操作之前等待的epoch数量。默认:0。 - **cooldown** (int,可选) - 在学习速率被降低之后,重新恢复正常操作之前等待的epoch数量。默认:0。
- **min_lr** (float,可选) - 最小的学习率。减小后的学习率最低下界限。默认:0。 - **min_lr** (float,可选) - 最小的学习率。减小后的学习率最低下界限。默认:0。
- **dtype** (str,可选) – 学习率值的数据类型,可以为"float32", "float64"。默认:"float32"。 - **dtype** (str,可选) – 学习率值的数据类型,可以为"float32", "float64"。默认:"float32"。
返回:与 ``loss`` 的提升相关的学习率 返回: ``loss`` 自适应的学习率
返回类型:Variable 返回类型:Variable
...@@ -63,22 +62,24 @@ ReduceLROnPlateau ...@@ -63,22 +62,24 @@ ReduceLROnPlateau
adam.minimize(loss) adam.minimize(loss)
avg_loss = total_loss/5 avg_loss = total_loss/5
reduce_lr.step(total_loss)
# 根据传入total_loss,调整学习率
reduce_lr.step(avg_loss)
lr = adam.current_step_lr() lr = adam.current_step_lr()
print("current avg_loss is %s, current lr is %s" % (avg_loss.numpy()[0], lr)) print("current avg_loss is %s, current lr is %s" % (avg_loss.numpy()[0], lr))
.. py:method:: step(loss) .. py:method:: step(loss)
根据传入的 ``loss`` 更新optimizer中学习率。更新后的学习率将会在下一次 ``optimizer.minimize`` 时生效。 需要在每个epoch调用该方法,其根据传入的 ``loss`` 调整optimizer中的学习率,调整后的学习率将会在下一次调用 ``optimizer.minimize`` 时生效。
参数: 参数:
loss (Variable): 类型:Variable,将被用来判断是否需要降低学习率。如果 ``loss`` 连续 ``patience`` 个epochs没有下降,将会降低学习率。 - **loss** (Variable) - 类型:Variable,shape为[1]的1-D Tensor。将被用来判断是否需要降低学习率。如果 ``loss`` 连续 ``patience`` 个epochs没有下降,
其必须是shape为[1]的1-D Tensor。特殊使用时,可以将 ``mode`` 设置为 ``'max'`` ,此时如果 ``loss`` 连续 ``patience`` 个epochs没 将会降低学习率。
有上升,学习率将会下降。
返回: 返回:
**代码示例**: **代码示例**:
参照其类 ref:`api_fluid_dygraph_ReduceLROnPlateau` 中的说明。
参照其类中的说明。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册