Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
机器未来
Paddle
提交
a7a82b91
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看板
提交
a7a82b91
编写于
9月 26, 2017
作者:
T
Tao Luo
提交者:
GitHub
9月 26, 2017
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #4363 from tensor-tang/sgd
add OMP SGD to speedup with CPUs
上级
f8192f72
8419b60e
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
15 addition
and
1 deletion
+15
-1
doc/getstarted/build_and_install/docker_install_cn.rst
doc/getstarted/build_and_install/docker_install_cn.rst
+1
-1
paddle/parameter/FirstOrderOptimizer.h
paddle/parameter/FirstOrderOptimizer.h
+11
-0
paddle/parameter/ParameterUpdateFunctions.cpp
paddle/parameter/ParameterUpdateFunctions.cpp
+3
-0
未找到文件。
doc/getstarted/build_and_install/docker_install_cn.rst
浏览文件 @
a7a82b91
...
@@ -20,7 +20,7 @@ Docker使用入门
...
@@ -20,7 +20,7 @@ Docker使用入门
docker pull paddlepaddle/paddle:0.10.0
docker pull paddlepaddle/paddle:0.10.0
来下载Docker镜像,paddlepaddle/paddle是从官方镜像源Dockerhub.com下载的,推荐国内用户使用ocker.paddlepaddle.org/paddle下载。
来下载Docker镜像,paddlepaddle/paddle是从官方镜像源Dockerhub.com下载的,推荐国内用户使用
d
ocker.paddlepaddle.org/paddle下载。
- *容器*: 如果说一个Docker镜像就是一个程序,那容器就是这个程序运行时产生的“进程”。
- *容器*: 如果说一个Docker镜像就是一个程序,那容器就是这个程序运行时产生的“进程”。
实际上,一个容器就是一个操作系统的进程,但是是运行在独立的进程空间,文件系统以及网络之上。
实际上,一个容器就是一个操作系统的进程,但是是运行在独立的进程空间,文件系统以及网络之上。
...
...
paddle/parameter/FirstOrderOptimizer.h
浏览文件 @
a7a82b91
...
@@ -15,6 +15,7 @@ limitations under the License. */
...
@@ -15,6 +15,7 @@ limitations under the License. */
#pragma once
#pragma once
#include "ParameterOptimizer.h"
#include "ParameterOptimizer.h"
#include "ParameterUpdateFunctions.h"
#include "Regularizer.h"
#include "Regularizer.h"
namespace
paddle
{
namespace
paddle
{
...
@@ -37,6 +38,15 @@ public:
...
@@ -37,6 +38,15 @@ public:
real
torch_learningRate
=
optConfig_
.
learning_method
()
==
"torch_momentum"
real
torch_learningRate
=
optConfig_
.
learning_method
()
==
"torch_momentum"
?
1.0
-
paraConfig
.
momentum
()
?
1.0
-
paraConfig
.
momentum
()
:
1.0
;
:
1.0
;
#ifdef PADDLE_USE_MKLDNN
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_VALUE
]
->
sgdUpdate
(
*
vecs
[
PARAMETER_GRADIENT
],
*
vecs
[
PARAMETER_GRADIENT
],
*
vecs
[
PARAMETER_MOMENTUM
],
*
vecs
[
PARAMETER_MOMENTUM
],
...
@@ -44,6 +54,7 @@ public:
...
@@ -44,6 +54,7 @@ public:
(
firstTime_
?
1.0
:
torch_learningRate
),
(
firstTime_
?
1.0
:
torch_learningRate
),
paraConfig
.
momentum
(),
paraConfig
.
momentum
(),
applyDecay_
?
paraConfig
.
decay_rate
()
:
0
);
applyDecay_
?
paraConfig
.
decay_rate
()
:
0
);
#endif
}
}
virtual
void
finishBatch
()
{
firstTime_
=
false
;
}
virtual
void
finishBatch
()
{
firstTime_
=
false
;
}
};
};
...
...
paddle/parameter/ParameterUpdateFunctions.cpp
浏览文件 @
a7a82b91
...
@@ -30,6 +30,9 @@ void sgdUpdateCpu(real learningRate,
...
@@ -30,6 +30,9 @@ void sgdUpdateCpu(real learningRate,
const
real
*
grad
,
const
real
*
grad
,
real
*
momentumVec
)
{
real
*
momentumVec
)
{
decayRate
*=
learningRate
;
decayRate
*=
learningRate
;
#ifdef PADDLE_USE_MKLDNN
#pragma omp parallel for
#endif
for
(
size_t
i
=
0
;
i
<
size
;
++
i
)
{
for
(
size_t
i
=
0
;
i
<
size
;
++
i
)
{
momentumVec
[
i
]
=
momentum
*
momentumVec
[
i
]
-
learningRate
*
grad
[
i
]
-
momentumVec
[
i
]
=
momentum
*
momentumVec
[
i
]
-
learningRate
*
grad
[
i
]
-
decayRate
*
value
[
i
];
decayRate
*
value
[
i
];
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录