Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
Paddle
提交
d6a7648a
P
Paddle
项目概览
PaddlePaddle
/
Paddle
大约 1 年 前同步成功
通知
2298
Star
20931
Fork
5422
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1423
列表
看板
标记
里程碑
合并请求
543
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Paddle
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1,423
Issue
1,423
列表
看板
标记
里程碑
合并请求
543
合并请求
543
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
d6a7648a
编写于
4月 20, 2017
作者:
Y
Yu Yang
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'develop' of github.com:baidu/Paddle into feature/c_api
上级
91927cc3
946693b2
变更
8
显示空白变更内容
内联
并排
Showing
8 changed file
with
109 addition
and
19 deletion
+109
-19
Dockerfile
Dockerfile
+1
-1
cmake/system.cmake
cmake/system.cmake
+5
-0
doc/design/releasing_process.md
doc/design/releasing_process.md
+58
-0
paddle/function/ContextProjectionOpTest.cpp
paddle/function/ContextProjectionOpTest.cpp
+15
-13
paddle/gserver/layers/TransLayer.cpp
paddle/gserver/layers/TransLayer.cpp
+8
-1
paddle/gserver/tests/test_LayerGrad.cpp
paddle/gserver/tests/test_LayerGrad.cpp
+16
-0
paddle/math/tests/test_matrixCompare.cpp
paddle/math/tests/test_matrixCompare.cpp
+3
-1
paddle/scripts/docker/build.sh
paddle/scripts/docker/build.sh
+3
-3
未找到文件。
Dockerfile
浏览文件 @
d6a7648a
...
@@ -13,7 +13,7 @@ ARG WITH_DOC
...
@@ -13,7 +13,7 @@ ARG WITH_DOC
ARG
WITH_STYLE_CHECK
ARG
WITH_STYLE_CHECK
ENV
WOBOQ OFF
ENV
WOBOQ OFF
ENV
WITH_GPU=${WITH_
AVX
:-OFF}
ENV
WITH_GPU=${WITH_
GPU
:-OFF}
ENV
WITH_AVX=${WITH_AVX:-ON}
ENV
WITH_AVX=${WITH_AVX:-ON}
ENV
WITH_DOC=${WITH_DOC:-OFF}
ENV
WITH_DOC=${WITH_DOC:-OFF}
ENV
WITH_STYLE_CHECK=${WITH_STYLE_CHECK:-OFF}
ENV
WITH_STYLE_CHECK=${WITH_STYLE_CHECK:-OFF}
...
...
cmake/system.cmake
浏览文件 @
d6a7648a
...
@@ -28,6 +28,11 @@ ELSE(WIN32)
...
@@ -28,6 +28,11 @@ ELSE(WIN32)
STRING
(
REGEX MATCH
"[0-9]+.[0-9]+"
VERSION
"
${
MACOSX_VERSION
}
"
)
STRING
(
REGEX MATCH
"[0-9]+.[0-9]+"
VERSION
"
${
MACOSX_VERSION
}
"
)
SET
(
MACOS_VERSION
${
VERSION
}
)
SET
(
MACOS_VERSION
${
VERSION
}
)
SET
(
HOST_SYSTEM
"macosx"
)
SET
(
HOST_SYSTEM
"macosx"
)
IF
(
NOT DEFINED ENV{MACOSX_DEPLOYMENT_TARGET}
)
# Set cache variable - end user may change this during ccmake or cmake-gui configure.
SET
(
CMAKE_OSX_DEPLOYMENT_TARGET
${
MACOS_VERSION
}
CACHE STRING
"Minimum OS X version to target for deployment (at runtime); newer APIs weak linked. Set to empty string for default value."
)
ENDIF
()
ELSE
(
APPLE
)
ELSE
(
APPLE
)
IF
(
EXISTS
"/etc/issue"
)
IF
(
EXISTS
"/etc/issue"
)
...
...
doc/design/releasing_process.md
0 → 100644
浏览文件 @
d6a7648a
# Paddle发行规范
Paddle使用git-flow branching model做分支管理,使用
[
Semantic Versioning
](
http://semver.org/
)
标准表示Paddle版本号。
Paddle每次发新的版本,遵循以下流程:
1.
从
`develop`
分支派生出新的分支,分支名为
`release/版本号`
。例如,
`release/0.10.0`
2.
将新分支的版本打上tag,tag为
`版本号rc.Patch号`
。第一个tag为
`0.10.0rc1`
,第二个为
`0.10.0rc2`
,依次类推。
3.
对这个版本的提交,做如下几个操作:
*
编译这个版本的Docker发行镜像,发布到dockerhub。如果失败,修复Docker编译镜像问题,Patch号加一,返回第二步
*
编译这个版本的Ubuntu Deb包。如果失败,修复Ubuntu Deb包编译问题,Patch号加一,返回第二步。
*
使用Regression Test List作为检查列表,测试Docker镜像/ubuntu安装包的功能正确性
*
如果失败,记录下所有失败的例子,在这个
`release/版本号`
分支中,修复所有bug后,Patch号加一,返回第二步
4.
第三步完成后,将
`release/版本号`
分支合入master分支,并删除
`release/版本号`
分支。将master分支的合入commit打上tag,tag为
`版本号`
。同时再将
`master`
分支合入
`develop`
分支。最后删除
`release/版本号`
分支。
5.
编译master分支的Docker发行镜像,发布到dockerhub。编译ubuntu的deb包,发布到github release页面
6.
协同完成Release Note的书写
需要注意的是:
*
`release/版本号`
分支一旦建立,一般不允许再从
`develop`
分支合入
`release/版本号`
。这样保证
`release/版本号`
分支功能的封闭,方便测试人员测试Paddle的行为。
*
在
`release/版本号`
分支存在的时候,如果有bugfix的行为,需要将bugfix的分支同时merge到
`master`
,
`develop`
和
`release/版本号`
这三个分支。
# Paddle 分支规范
Paddle开发过程使用
[
git-flow
](
http://nvie.com/posts/a-successful-git-branching-model/
)
分支规范,并适应github的特性做了一些区别。
*
Paddle的主版本库遵循
[
git-flow
](
http://nvie.com/posts/a-successful-git-branching-model/
)
分支规范。其中:
*
`master`
分支为稳定(stable branch)版本分支。每一个
`master`
分支的版本都是经过单元测试和回归测试的版本。
*
`develop`
分支为开发(develop branch)版本分支。每一个
`develop`
分支的版本都经过单元测试,但并没有经过回归测试。
*
`release/版本号`
分支为每一次Release时建立的临时分支。在这个阶段的代码正在经历回归测试。
*
其他用户的fork版本库并不需要严格遵守
[
git-flow
](
http://nvie.com/posts/a-successful-git-branching-model/
)
分支规范,但所有fork的版本库的所有分支都相当于特性分支。
*
建议,开发者fork的版本库使用
`develop`
分支同步主版本库的
`develop`
分支
*
建议,开发者fork的版本库中,再基于
`develop`
版本fork出自己的功能分支。
*
当功能分支开发完毕后,向Paddle的主版本库提交
`Pull Reuqest`
,进而进行代码评审。
*
在评审过程中,开发者修改自己的代码,可以继续在自己的功能分支提交代码。
*
BugFix分支也是在开发者自己的fork版本库维护,与功能分支不同的是,BugFix分支需要分别给主版本库的
`master`
、
`develop`
与可能有的
`release/版本号`
分支,同时提起
`Pull Request`
。
# Paddle回归测试列表
本列表说明Paddle发版之前需要测试的功能点。
## Paddle Book中所有章节
Paddle每次发版本首先要保证Paddle Book中所有章节功能的正确性。功能的正确性包括验证Paddle目前的
`paddle_trainer`
训练和纯使用
`Python`
训练模型正确性。
| | 新手入门章节 | 识别数字 | 图像分类 | 词向量 | 情感分析 | 语意角色标注 | 机器翻译 | 个性化推荐 |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| API.V2 + Docker + GPU | | | | | | | | |
| API.V2 + Docker + CPU | | | | | | | | |
|
`paddle_trainer`
+ Docker + GPU | | | | | | | | |
|
`paddle_trainer`
+ Docker + CPU | | | | | | | | |
| API.V2 + Ubuntu + GPU | | | | | | | | |
| API.V2 + Ubuntu + CPU | | | | | | | | |
|
`paddle_trainer`
+ Ubuntu + GPU | | | | | | | | |
|
`paddle_trainer`
+ Ubuntu + CPU | | | | | | | | |
paddle/function/ContextProjectionOpTest.cpp
浏览文件 @
d6a7648a
...
@@ -28,11 +28,12 @@ void testMatrixProjectionForward(int context_start,
...
@@ -28,11 +28,12 @@ void testMatrixProjectionForward(int context_start,
std
::
max
(
0
,
(
int
)(
context_start
+
context_length
-
1
));
std
::
max
(
0
,
(
int
)(
context_start
+
context_length
-
1
));
if
(
pad
==
0
)
is_padding
=
false
;
if
(
pad
==
0
)
is_padding
=
false
;
FunctionCompare
test
(
"ContextProjectionForward"
,
FunctionCompare
test
(
"ContextProjectionForward"
,
FuncConfig
()
FuncConfig
()
.
set
(
"context_length"
,
context_length
)
.
set
(
"context_length"
,
context_length
)
.
set
(
"context_start"
,
context_start
)
.
set
(
"context_start"
,
context_start
)
.
set
(
"begin_pad"
,
std
::
max
(
0
,
-
context_start
)));
.
set
(
"begin_pad"
,
(
size_t
)
std
::
max
(
0
,
-
context_start
)));
// prepare input arguments
// prepare input arguments
test
.
addSequence
(
SequenceIdArg
(
TensorShape
{
batch_size
}));
test
.
addSequence
(
SequenceIdArg
(
TensorShape
{
batch_size
}));
...
@@ -51,7 +52,7 @@ void testMatrixProjectionForward(int context_start,
...
@@ -51,7 +52,7 @@ void testMatrixProjectionForward(int context_start,
}
}
void
testMatrixProjectionBackward
(
int
context_start
,
void
testMatrixProjectionBackward
(
int
context_start
,
in
t
context_length
,
size_
t
context_length
,
bool
is_padding
,
bool
is_padding
,
size_t
batch_size
,
size_t
batch_size
,
size_t
input_dim
)
{
size_t
input_dim
)
{
...
@@ -59,11 +60,12 @@ void testMatrixProjectionBackward(int context_start,
...
@@ -59,11 +60,12 @@ void testMatrixProjectionBackward(int context_start,
std
::
max
(
0
,
(
int
)(
context_start
+
context_length
-
1
));
std
::
max
(
0
,
(
int
)(
context_start
+
context_length
-
1
));
if
(
pad
==
0
)
is_padding
=
false
;
if
(
pad
==
0
)
is_padding
=
false
;
FunctionCompare
test
(
"ContextProjectionBackward"
,
FunctionCompare
test
(
"ContextProjectionBackward"
,
FuncConfig
()
FuncConfig
()
.
set
(
"context_length"
,
context_length
)
.
set
(
"context_length"
,
context_length
)
.
set
(
"context_start"
,
context_start
)
.
set
(
"context_start"
,
context_start
)
.
set
(
"begin_pad"
,
std
::
max
(
0
,
-
context_start
))
.
set
(
"begin_pad"
,
(
size_t
)
std
::
max
(
0
,
-
context_start
))
.
set
(
"is_padding"
,
is_padding
)
.
set
(
"is_padding"
,
is_padding
)
.
set
(
"total_pad"
,
pad
));
.
set
(
"total_pad"
,
pad
));
...
...
paddle/gserver/layers/TransLayer.cpp
浏览文件 @
d6a7648a
...
@@ -56,7 +56,14 @@ void TransLayer::backward(const UpdateCallback& callback) {
...
@@ -56,7 +56,14 @@ void TransLayer::backward(const UpdateCallback& callback) {
return
;
return
;
}
}
MatrixPtr
preGrad
=
getInputGrad
(
0
);
MatrixPtr
preGrad
=
getInputGrad
(
0
);
outputGrad
->
transpose
(
preGrad
,
false
);
if
(
preGrad
)
{
MatrixPtr
transGrad
=
Matrix
::
create
(
preGrad
->
getHeight
(),
preGrad
->
getWidth
(),
/* trans= */
false
,
preGrad
->
useGpu
());
outputGrad
->
transpose
(
transGrad
,
false
);
preGrad
->
add
(
*
transGrad
);
}
}
}
}
// namespace paddle
}
// namespace paddle
paddle/gserver/tests/test_LayerGrad.cpp
浏览文件 @
d6a7648a
...
@@ -1689,6 +1689,22 @@ TEST(Layer, smooth_l1) {
...
@@ -1689,6 +1689,22 @@ TEST(Layer, smooth_l1) {
}
}
}
}
TEST
(
Layer
,
TransLayer
)
{
TestConfig
config
;
const
int
height
=
128
;
const
int
width
=
1028
;
config
.
layerConfig
.
set_type
(
"trans"
);
config
.
layerConfig
.
set_size
(
width
);
config
.
inputDefs
.
push_back
(
{
INPUT_DATA
,
"layer_0"
,
/* dim= */
height
*
width
,
/* paraSize= */
0
});
config
.
layerConfig
.
add_inputs
();
for
(
auto
useGpu
:
{
false
,
true
})
{
testLayerGrad
(
config
,
"trans"
,
height
,
/* trans= */
false
,
useGpu
);
}
}
int
main
(
int
argc
,
char
**
argv
)
{
int
main
(
int
argc
,
char
**
argv
)
{
testing
::
InitGoogleTest
(
&
argc
,
argv
);
testing
::
InitGoogleTest
(
&
argc
,
argv
);
initMain
(
argc
,
argv
);
initMain
(
argc
,
argv
);
...
...
paddle/math/tests/test_matrixCompare.cpp
浏览文件 @
d6a7648a
...
@@ -235,8 +235,10 @@ TEST(Matrix, unary) {
...
@@ -235,8 +235,10 @@ TEST(Matrix, unary) {
testMatrixTranspose
(
height
,
width
);
testMatrixTranspose
(
height
,
width
);
testMatrixRotate
(
height
,
width
);
testMatrixRotate
(
height
,
width
);
}
}
// inverse
// inverse
#ifdef PADDLE_USE_LAPACK
testMatrixInverse
(
height
);
testMatrixInverse
(
height
);
#endif
}
}
}
}
...
...
paddle/scripts/docker/build.sh
浏览文件 @
d6a7648a
...
@@ -75,9 +75,8 @@ fi
...
@@ -75,9 +75,8 @@ fi
paddle version
paddle version
# generate production docker image Dockerfile
if
[[
-n
${
APT_MIRROR
}
]]
;
then
if
[
${
USE_MIRROR
}
]
;
then
MIRROR_UPDATE
=
"sed -i '
${
APT_MIRROR
}
' /etc/apt/sources.list &&
\\
"
MIRROR_UPDATE
=
"sed 's@http:
\/\/
archive.ubuntu.com
\/
ubuntu
\/
@mirror:
\/\/
mirrors.ubuntu.com
\/
mirrors.txt@' -i /etc/apt/sources.list &&
\\
"
else
else
MIRROR_UPDATE
=
"
\\
"
MIRROR_UPDATE
=
"
\\
"
fi
fi
...
@@ -99,6 +98,7 @@ ADD build/*.deb /usr/local/opt/paddle/deb/
...
@@ -99,6 +98,7 @@ ADD build/*.deb /usr/local/opt/paddle/deb/
# run paddle version to install python packages first
# run paddle version to install python packages first
RUN dpkg -i /usr/local/opt/paddle/deb/*.deb &&
\
RUN dpkg -i /usr/local/opt/paddle/deb/*.deb &&
\
rm -f /usr/local/opt/paddle/deb/*.deb &&
\
rm -f /usr/local/opt/paddle/deb/*.deb &&
\
pip install /usr/opt/paddle/share/wheels/*.whl &&
\
paddle version
paddle version
${
CPU_DOCKER_PYTHON_HOME_ENV
}
${
CPU_DOCKER_PYTHON_HOME_ENV
}
${
DOCKERFILE_CUDNN_DSO
}
${
DOCKERFILE_CUDNN_DSO
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录