Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
FluidDoc
提交
54db6cf0
F
FluidDoc
项目概览
PaddlePaddle
/
FluidDoc
通知
5
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
23
列表
看板
标记
里程碑
合并请求
111
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
F
FluidDoc
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
23
Issue
23
列表
看板
标记
里程碑
合并请求
111
合并请求
111
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
54db6cf0
编写于
3月 26, 2020
作者:
A
Aurelius84
提交者:
GitHub
3月 26, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add learning_rate in NoamDecay (#1940)
* Add learning_rate in NoamDecay test=develop * Update sample code test=develop
上级
107d113c
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
12 addition
and
6 deletion
+12
-6
doc/fluid/api_cn/dygraph_cn/NoamDecay_cn.rst
doc/fluid/api_cn/dygraph_cn/NoamDecay_cn.rst
+6
-3
doc/fluid/api_cn/layers_cn/noam_decay_cn.rst
doc/fluid/api_cn/layers_cn/noam_decay_cn.rst
+6
-3
未找到文件。
doc/fluid/api_cn/dygraph_cn/NoamDecay_cn.rst
浏览文件 @
54db6cf0
...
@@ -5,7 +5,7 @@ NoamDecay
...
@@ -5,7 +5,7 @@ NoamDecay
**注意:该API仅支持【动态图】模式**
**注意:该API仅支持【动态图】模式**
.. py:class:: paddle.fluid.dygraph.NoamDecay(d_model, warmup_steps, begin=1, step=1, dtype='float32')
.. py:class:: paddle.fluid.dygraph.NoamDecay(d_model, warmup_steps, begin=1, step=1, dtype='float32'
, learning_rate=1.0
)
该接口提供Noam衰减学习率的功能。
该接口提供Noam衰减学习率的功能。
...
@@ -13,7 +13,7 @@ Noam衰减的计算方式如下。
...
@@ -13,7 +13,7 @@ Noam衰减的计算方式如下。
.. math::
.. math::
decayed\_learning\_rate = d_{model}^{-0.5} * min(global\_steps^{-0.5}, global\_steps * warmup\_steps^{-1.5})
decayed\_learning\_rate =
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>`_
关于Noam衰减的更多细节请参考 `attention is all you need <https://arxiv.org/pdf/1706.03762.pdf>`_
...
@@ -28,6 +28,7 @@ Noam衰减的计算方式如下。
...
@@ -28,6 +28,7 @@ Noam衰减的计算方式如下。
- **begin** (int,可选) – 起始步。即以上运算式子中global_steps的初始值。默认值为0。
- **begin** (int,可选) – 起始步。即以上运算式子中global_steps的初始值。默认值为0。
- **step** (int,可选) – 步大小。即以上运算式子中global_steps的递增值。默认值为1。
- **step** (int,可选) – 步大小。即以上运算式子中global_steps的递增值。默认值为1。
- **dtype** (str,可选) – 学习率值的数据类型,可以为"float32", "float64"。默认值为"float32"。
- **dtype** (str,可选) – 学习率值的数据类型,可以为"float32", "float64"。默认值为"float32"。
- **learning_rate** (Variable|float|int,可选) - 初始学习率。如果类型为Variable,则为shape为[1]的Tensor,数据类型为float32或float64;也可以是python的int类型。默认值为1.0。
返回: 无
返回: 无
...
@@ -39,7 +40,9 @@ Noam衰减的计算方式如下。
...
@@ -39,7 +40,9 @@ Noam衰减的计算方式如下。
warmup_steps = 100
warmup_steps = 100
learning_rate = 0.01
learning_rate = 0.01
with fluid.dygraph.guard():
with fluid.dygraph.guard():
emb = fluid.dygraph.Embedding([10, 10])
optimizer = fluid.optimizer.SGD(
optimizer = fluid.optimizer.SGD(
learning_rate = fluid.dygraph.NoamDecay(
learning_rate = fluid.dygraph.NoamDecay(
1/(warmup_steps *(learning_rate ** 2)),
1/(warmup_steps *(learning_rate ** 2)),
warmup_steps) )
warmup_steps),
parameter_list = emb.parameters())
doc/fluid/api_cn/layers_cn/noam_decay_cn.rst
浏览文件 @
54db6cf0
...
@@ -3,7 +3,7 @@
...
@@ -3,7 +3,7 @@
noam_decay
noam_decay
-------------------------------
-------------------------------
.. py:function:: paddle.fluid.layers.noam_decay(d_model,warmup_steps)
.. py:function:: paddle.fluid.layers.noam_decay(d_model,
warmup_steps)
Noam衰减方法
Noam衰减方法
...
@@ -14,11 +14,12 @@ noam衰减的numpy实现如下:
...
@@ -14,11 +14,12 @@ noam衰减的numpy实现如下:
import paddle.fluid as fluid
import paddle.fluid as fluid
import numpy as np
import numpy as np
# 设置超参数
# 设置超参数
base_lr = 0.01
d_model = 2
d_model = 2
current_steps = 20
current_steps = 20
warmup_steps = 200
warmup_steps = 200
# 计算
# 计算
lr_value = np.power(d_model, -0.5) * np.min([
lr_value =
base_lr *
np.power(d_model, -0.5) * np.min([
np.power(current_steps, -0.5),
np.power(current_steps, -0.5),
np.power(warmup_steps, -1.5) * current_steps])
np.power(warmup_steps, -1.5) * current_steps])
...
@@ -27,6 +28,7 @@ noam衰减的numpy实现如下:
...
@@ -27,6 +28,7 @@ noam衰减的numpy实现如下:
参数:
参数:
- **d_model** (Variable|int) - 模型的输入、输出向量特征维度。类型可设置为标量Tensor,或int值。
- **d_model** (Variable|int) - 模型的输入、输出向量特征维度。类型可设置为标量Tensor,或int值。
- **warmup_steps** (Variable|int) - 预热步数,类型可设置为标量Tensor,或int值。
- **warmup_steps** (Variable|int) - 预热步数,类型可设置为标量Tensor,或int值。
- **learning_rate** (Variable|float|int,可选) - 初始学习率。如果类型为Variable,则为shape为[1]的Tensor,数据类型为float32或float64;也可以是python的int类型。默认值为1.0。
返回:衰减的学习率
返回:衰减的学习率
...
@@ -41,7 +43,8 @@ noam衰减的numpy实现如下:
...
@@ -41,7 +43,8 @@ noam衰减的numpy实现如下:
learning_rate = 0.01
learning_rate = 0.01
lr = fluid.layers.learning_rate_scheduler.noam_decay(
lr = fluid.layers.learning_rate_scheduler.noam_decay(
1/(warmup_steps *(learning_rate ** 2)),
1/(warmup_steps *(learning_rate ** 2)),
warmup_steps)
warmup_steps,
learning_rate)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录