Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
wmsofts
Paddle
提交
88952fba
P
Paddle
项目概览
wmsofts
/
Paddle
与 Fork 源项目一致
Fork自
PaddlePaddle / Paddle
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Paddle
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
88952fba
编写于
9月 25, 2017
作者:
T
tensor-tang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
use existed sgd updater function
上级
d6a27ade
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
8 addition
and
29 deletion
+8
-29
paddle/math/Vector.h
paddle/math/Vector.h
+0
-22
paddle/parameter/FirstOrderOptimizer.h
paddle/parameter/FirstOrderOptimizer.h
+8
-7
未找到文件。
paddle/math/Vector.h
浏览文件 @
88952fba
...
...
@@ -92,28 +92,6 @@ public:
const
T
*
getData
()
const
{
return
this
->
data_
;
}
T
*
getData
()
{
return
this
->
data_
;
}
#ifdef PADDLE_USE_MKLDNN
/**
* sgd update with openmp to speedup
*/
void
sgdUpdateWithOMP
(
VectorT
&
gradVec
,
VectorT
&
momVec
,
T
learningRate
,
T
momentum
,
T
decayRate
)
{
size_t
size
=
this
->
getSize
();
T
*
val
=
this
->
getData
();
T
*
grd
=
gradVec
.
getData
();
T
*
mom
=
momVec
.
getData
();
decayRate
*=
learningRate
;
#pragma omp parallel for
for
(
size_t
i
=
0
;
i
<
size
;
++
i
)
{
mom
[
i
]
=
momentum
*
mom
[
i
]
-
learningRate
*
grd
[
i
]
-
decayRate
*
val
[
i
];
val
[
i
]
+=
mom
[
i
];
}
}
#endif
virtual
void
zeroMem
()
=
0
;
// set all elements to value
virtual
void
reset
(
const
T
&
value
)
=
0
;
...
...
paddle/parameter/FirstOrderOptimizer.h
浏览文件 @
88952fba
...
...
@@ -15,6 +15,7 @@ limitations under the License. */
#pragma once
#include "ParameterOptimizer.h"
#include "ParameterUpdateFunctions.h"
#include "Regularizer.h"
namespace
paddle
{
...
...
@@ -38,13 +39,13 @@ public:
?
1.0
-
paraConfig
.
momentum
()
:
1.0
;
#ifdef PADDLE_USE_MKLDNN
vecs
[
PARAMETER_VALUE
]
->
sgdUpdateWithOMP
(
*
vecs
[
PARAMETER_GRADIENT
]
,
*
vecs
[
PARAMETER_MOMENTUM
]
,
learningRate_
*
paraConfig
.
learning_rate
()
*
(
firstTime_
?
1.0
:
torch_learningRate
),
paraConfig
.
momentum
(),
applyDecay_
?
paraConfig
.
decay_rate
()
:
0
);
sgdUpdate
(
learningRate_
*
paraConfig
.
learning_rate
()
*
(
firstTime_
?
1.0
:
torch_learningRate
)
,
paraConfig
.
momentum
()
,
applyDecay_
?
paraConfig
.
decay_rate
()
:
0
,
vecs
[
PARAMETER_VALUE
].
get
(
),
vecs
[
PARAMETER_GRADIENT
].
get
(),
vecs
[
PARAMETER_MOMENTUM
].
get
()
);
#else
vecs
[
PARAMETER_VALUE
]
->
sgdUpdate
(
*
vecs
[
PARAMETER_GRADIENT
],
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录