Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
ujs_wantz
Paddle
提交
d6a7648a
P
Paddle
项目概览
ujs_wantz
/
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看板
体验新版 GitCode,发现更多精彩内容 >>
提交
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
ARG
WITH_STYLE_CHECK
ENV
WOBOQ OFF
ENV
WITH_GPU=${WITH_
AVX
:-OFF}
ENV
WITH_GPU=${WITH_
GPU
:-OFF}
ENV
WITH_AVX=${WITH_AVX:-ON}
ENV
WITH_DOC=${WITH_DOC:-OFF}
ENV
WITH_STYLE_CHECK=${WITH_STYLE_CHECK:-OFF}
...
...
cmake/system.cmake
浏览文件 @
d6a7648a
...
...
@@ -28,6 +28,11 @@ ELSE(WIN32)
STRING
(
REGEX MATCH
"[0-9]+.[0-9]+"
VERSION
"
${
MACOSX_VERSION
}
"
)
SET
(
MACOS_VERSION
${
VERSION
}
)
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
)
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,
std
::
max
(
0
,
(
int
)(
context_start
+
context_length
-
1
));
if
(
pad
==
0
)
is_padding
=
false
;
FunctionCompare
test
(
"ContextProjectionForward"
,
FuncConfig
()
.
set
(
"context_length"
,
context_length
)
.
set
(
"context_start"
,
context_start
)
.
set
(
"begin_pad"
,
std
::
max
(
0
,
-
context_start
)));
FunctionCompare
test
(
"ContextProjectionForward"
,
FuncConfig
()
.
set
(
"context_length"
,
context_length
)
.
set
(
"context_start"
,
context_start
)
.
set
(
"begin_pad"
,
(
size_t
)
std
::
max
(
0
,
-
context_start
)));
// prepare input arguments
test
.
addSequence
(
SequenceIdArg
(
TensorShape
{
batch_size
}));
...
...
@@ -51,7 +52,7 @@ void testMatrixProjectionForward(int context_start,
}
void
testMatrixProjectionBackward
(
int
context_start
,
in
t
context_length
,
size_
t
context_length
,
bool
is_padding
,
size_t
batch_size
,
size_t
input_dim
)
{
...
...
@@ -59,13 +60,14 @@ void testMatrixProjectionBackward(int context_start,
std
::
max
(
0
,
(
int
)(
context_start
+
context_length
-
1
));
if
(
pad
==
0
)
is_padding
=
false
;
FunctionCompare
test
(
"ContextProjectionBackward"
,
FuncConfig
()
.
set
(
"context_length"
,
context_length
)
.
set
(
"context_start"
,
context_start
)
.
set
(
"begin_pad"
,
std
::
max
(
0
,
-
context_start
))
.
set
(
"is_padding"
,
is_padding
)
.
set
(
"total_pad"
,
pad
));
FunctionCompare
test
(
"ContextProjectionBackward"
,
FuncConfig
()
.
set
(
"context_length"
,
context_length
)
.
set
(
"context_start"
,
context_start
)
.
set
(
"begin_pad"
,
(
size_t
)
std
::
max
(
0
,
-
context_start
))
.
set
(
"is_padding"
,
is_padding
)
.
set
(
"total_pad"
,
pad
));
// prepare input arguments
test
.
addSequence
(
SequenceIdArg
(
TensorShape
{
batch_size
}));
...
...
paddle/gserver/layers/TransLayer.cpp
浏览文件 @
d6a7648a
...
...
@@ -56,7 +56,14 @@ void TransLayer::backward(const UpdateCallback& callback) {
return
;
}
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
paddle/gserver/tests/test_LayerGrad.cpp
浏览文件 @
d6a7648a
...
...
@@ -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
)
{
testing
::
InitGoogleTest
(
&
argc
,
argv
);
initMain
(
argc
,
argv
);
...
...
paddle/math/tests/test_matrixCompare.cpp
浏览文件 @
d6a7648a
...
...
@@ -235,8 +235,10 @@ TEST(Matrix, unary) {
testMatrixTranspose
(
height
,
width
);
testMatrixRotate
(
height
,
width
);
}
// inverse
// inverse
#ifdef PADDLE_USE_LAPACK
testMatrixInverse
(
height
);
#endif
}
}
...
...
paddle/scripts/docker/build.sh
浏览文件 @
d6a7648a
...
...
@@ -75,9 +75,8 @@ fi
paddle version
# generate production docker image Dockerfile
if
[
${
USE_MIRROR
}
]
;
then
MIRROR_UPDATE
=
"sed 's@http:
\/\/
archive.ubuntu.com
\/
ubuntu
\/
@mirror:
\/\/
mirrors.ubuntu.com
\/
mirrors.txt@' -i /etc/apt/sources.list &&
\\
"
if
[[
-n
${
APT_MIRROR
}
]]
;
then
MIRROR_UPDATE
=
"sed -i '
${
APT_MIRROR
}
' /etc/apt/sources.list &&
\\
"
else
MIRROR_UPDATE
=
"
\\
"
fi
...
...
@@ -99,6 +98,7 @@ ADD build/*.deb /usr/local/opt/paddle/deb/
# run paddle version to install python packages first
RUN dpkg -i /usr/local/opt/paddle/deb/*.deb &&
\
rm -f /usr/local/opt/paddle/deb/*.deb &&
\
pip install /usr/opt/paddle/share/wheels/*.whl &&
\
paddle version
${
CPU_DOCKER_PYTHON_HOME_ENV
}
${
DOCKERFILE_CUDNN_DSO
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录