Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
机器未来
Paddle
提交
324876bb
P
Paddle
项目概览
机器未来
/
Paddle
与 Fork 源项目一致
Fork自
PaddlePaddle / Paddle
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Paddle
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
324876bb
编写于
10月 03, 2017
作者:
A
Abhinav Arora
提交者:
GitHub
10月 03, 2017
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Changing learning rate from type Input(float) to Input(tensor) (#4578)
上级
b884bc33
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
5 addition
and
2 deletion
+5
-2
paddle/operators/sgd_op.cc
paddle/operators/sgd_op.cc
+3
-0
paddle/operators/sgd_op.h
paddle/operators/sgd_op.h
+1
-1
python/paddle/v2/framework/tests/test_sgd_op.py
python/paddle/v2/framework/tests/test_sgd_op.py
+1
-1
未找到文件。
paddle/operators/sgd_op.cc
浏览文件 @
324876bb
...
...
@@ -32,6 +32,9 @@ class SGDOp : public framework::OperatorWithKernel {
PADDLE_ENFORCE
(
ctx
->
HasOutput
(
"param_out"
),
"Output(param_out) of SGDOp should not be null."
);
auto
lr_dims
=
ctx
->
GetInputDim
(
"learning_rate"
);
PADDLE_ENFORCE_EQ
(
framework
::
product
(
lr_dims
),
1
,
"Learning rate should have 1 element"
);
auto
param_dim
=
ctx
->
GetInputDim
(
"param"
);
PADDLE_ENFORCE_EQ
(
param_dim
,
ctx
->
GetInputDim
(
"grad"
),
"Two input of SGD Op's dimension must be same."
);
...
...
paddle/operators/sgd_op.h
浏览文件 @
324876bb
...
...
@@ -31,7 +31,7 @@ class SGDOpKernel : public framework::OpKernel<T> {
auto
param
=
ctx
.
Input
<
Tensor
>
(
"param"
);
auto
grad
=
ctx
.
Input
<
Tensor
>
(
"grad"
);
auto
param_out
=
ctx
.
Output
<
Tensor
>
(
"param_out"
);
float
lr
=
*
ctx
.
Input
<
float
>
(
"learning_rate"
)
;
float
lr
=
ctx
.
Input
<
Tensor
>
(
"learning_rate"
)
->
data
<
float
>
()[
0
]
;
param_out
->
mutable_data
<
T
>
(
ctx
.
GetPlace
());
...
...
python/paddle/v2/framework/tests/test_sgd_op.py
浏览文件 @
324876bb
...
...
@@ -8,7 +8,7 @@ class TestSGDOp(OpTest):
self
.
op_type
=
"sgd"
w
=
np
.
random
.
random
((
102
,
105
)).
astype
(
"float32"
)
g
=
np
.
random
.
random
((
102
,
105
)).
astype
(
"float32"
)
lr
=
0.1
lr
=
np
.
array
([
0.1
]).
astype
(
"float32"
)
self
.
inputs
=
{
'param'
:
w
,
'grad'
:
g
,
'learning_rate'
:
lr
}
self
.
outputs
=
{
'param_out'
:
w
-
lr
*
g
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录