From cf7c745c486bfc89543c6c9c6abc19ce1374548b Mon Sep 17 00:00:00 2001 From: fengjiayi Date: Sat, 24 Feb 2018 14:49:04 +0800 Subject: [PATCH 1/6] change type of BN's 'mean' and 'variance' from persistable variable to Parameter --- python/paddle/v2/fluid/layers/nn.py | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/python/paddle/v2/fluid/layers/nn.py b/python/paddle/v2/fluid/layers/nn.py index e8b4cec6ee..3453dd945d 100644 --- a/python/paddle/v2/fluid/layers/nn.py +++ b/python/paddle/v2/fluid/layers/nn.py @@ -1519,21 +1519,21 @@ def batch_norm(input, bias = helper.create_parameter( attr=helper.bias_attr, shape=param_shape, dtype=dtype, is_bias=True) - mean = helper.create_global_variable( - name=moving_mean_name, - dtype=input.dtype, + mean = helper.create_parameter( + attr=ParamAttr( + name=moving_mean_name, initializer=Constant(0.0), trainable=False), shape=param_shape, - persistable=True, - stop_gradient=True) - helper.set_variable_initializer(var=mean, initializer=Constant(0.0)) + dtype=input.dtype) + mean.stop_gradient = True - variance = helper.create_global_variable( - name=moving_variance_name, - dtype=input.dtype, + variance = helper.create_parameter( + attr=ParamAttr( + name=moving_variance_name, + initializer=Constant(1.0), + trainable=False), shape=param_shape, - persistable=True, - stop_gradient=True) - helper.set_variable_initializer(var=variance, initializer=Constant(1.0)) + dtype=input.dtype) + variance.stop_gradient = True # create output # mean and mean_out share the same memory From 44e301541256b966104bc1c67cab8638a0dafcfe Mon Sep 17 00:00:00 2001 From: QI JUN Date: Sat, 24 Feb 2018 16:29:59 +0800 Subject: [PATCH 2/6] fix nccl version (#8540) * fix nccl version * enable nccl test --- Dockerfile | 3 ++- paddle/fluid/platform/nccl_test.cu | 3 --- paddle/scripts/docker/build.sh | 2 +- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/Dockerfile b/Dockerfile index 6ac9901ac6..60e76c7f2e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -22,7 +22,8 @@ COPY ./paddle/scripts/docker/root/ /root/ RUN apt-get update && \ apt-get install -y \ - git python-pip python-dev openssh-server bison libnccl-dev \ + git python-pip python-dev openssh-server bison \ + libnccl2=2.1.2-1+cuda8.0 libnccl-dev=2.1.2-1+cuda8.0 \ wget unzip unrar tar xz-utils bzip2 gzip coreutils ntp \ curl sed grep graphviz libjpeg-dev zlib1g-dev \ python-matplotlib gcc-4.8 g++-4.8 \ diff --git a/paddle/fluid/platform/nccl_test.cu b/paddle/fluid/platform/nccl_test.cu index 212ea8517e..32a293796c 100644 --- a/paddle/fluid/platform/nccl_test.cu +++ b/paddle/fluid/platform/nccl_test.cu @@ -129,9 +129,6 @@ TEST(NCCL, all_reduce) { } // namespace paddle int main(int argc, char** argv) { - // FIXME(tonyyang-svail): - // Due to the driver issue on our CI, disable for now - return 0; dev_count = paddle::platform::GetCUDADeviceCount(); if (dev_count <= 1) { LOG(WARNING) diff --git a/paddle/scripts/docker/build.sh b/paddle/scripts/docker/build.sh index 56fa138786..8ec3d0c657 100644 --- a/paddle/scripts/docker/build.sh +++ b/paddle/scripts/docker/build.sh @@ -171,7 +171,7 @@ EOF EOF if [[ ${WITH_GPU} == "ON" ]]; then - NCCL_DEPS="apt-get install -y libnccl-dev &&" + NCCL_DEPS="apt-get install -y libnccl2=2.1.2-1+cuda8.0 libnccl-dev=2.1.2-1+cuda8.0 &&" else NCCL_DEPS="" fi From fa32516281eb4e31379ae8a149e6b9d7eaa75654 Mon Sep 17 00:00:00 2001 From: superjom Date: Sat, 24 Feb 2018 18:26:02 +0800 Subject: [PATCH 3/6] boot --- doc/api/overview.rst | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/doc/api/overview.rst b/doc/api/overview.rst index 953d2db2b3..5b7da7a477 100644 --- a/doc/api/overview.rst +++ b/doc/api/overview.rst @@ -1,4 +1,13 @@ -API Overview -============ +# V2 API Overview -TBD +The PaddlePaddle V2 API is designed to provide a modern user interface for PaddlePaddle V1(the original layer-based platform of PaddlePaddle), it proposes some high-level concepts such as [Layers](http://www.paddlepaddle.org/docs/develop/api/en/v2/config/layer.html),[Optimizer](http://www.paddlepaddle.org/docs/develop/api/en/v2/config/optimizer.html),[Evaluator](http://www.paddlepaddle.org/docs/develop/api/en/v2/config/evaluators.html) and [Data Reader](http://www.paddlepaddle.org/docs/develop/api/en/v2/data/data_reader.html) to make the model configuration more familiar to users. + +A model is composed of the computation described by a group of `Layers`, with `Evaluator` to define the error, `Optimizer` to update the parameters and `Data Reader` to feed in the data. + +We also provide the [interface for Training and Inference](http://www.paddlepaddle.org/docs/develop/api/en/v2/run_logic.html) to help control the training and inference phrase, it has several easy to use methods + +- `paddle.train` +- `paddle.test` +- `paddle.infer` + +to better expose the internal running details, different [Events](http://www.paddlepaddle.org/docs/develop/api/en/v2/run_logic.html#event) are available to users by writing some callbacks. From f2694124291190da55e84f99dafd6ac0d8f067c2 Mon Sep 17 00:00:00 2001 From: superjom Date: Sat, 24 Feb 2018 18:46:18 +0800 Subject: [PATCH 4/6] update format for sphinx --- doc/api/overview.rst | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/doc/api/overview.rst b/doc/api/overview.rst index 5b7da7a477..c1a4582b5f 100644 --- a/doc/api/overview.rst +++ b/doc/api/overview.rst @@ -1,13 +1,16 @@ -# V2 API Overview +V2 API Overview +================ -The PaddlePaddle V2 API is designed to provide a modern user interface for PaddlePaddle V1(the original layer-based platform of PaddlePaddle), it proposes some high-level concepts such as [Layers](http://www.paddlepaddle.org/docs/develop/api/en/v2/config/layer.html),[Optimizer](http://www.paddlepaddle.org/docs/develop/api/en/v2/config/optimizer.html),[Evaluator](http://www.paddlepaddle.org/docs/develop/api/en/v2/config/evaluators.html) and [Data Reader](http://www.paddlepaddle.org/docs/develop/api/en/v2/data/data_reader.html) to make the model configuration more familiar to users. +The PaddlePaddle V2 API is designed to provide a modern user interface for PaddlePaddle V1(the original layer-based platform of PaddlePaddle), +it proposes some high-level concepts such as `Layers`_ ,`Optimizer`_ ,`Evaluator``_ and `Data Reader`_ to make the model configuration more familiar to users. A model is composed of the computation described by a group of `Layers`, with `Evaluator` to define the error, `Optimizer` to update the parameters and `Data Reader` to feed in the data. -We also provide the [interface for Training and Inference](http://www.paddlepaddle.org/docs/develop/api/en/v2/run_logic.html) to help control the training and inference phrase, it has several easy to use methods +We also provide the `interface for Training and Inference``_ are available to users by writing some callbacks. From 2b9de0af5880e4e77120ebeef4e97d516d13b13d Mon Sep 17 00:00:00 2001 From: superjom Date: Sat, 24 Feb 2018 18:58:36 +0800 Subject: [PATCH 5/6] format --- doc/api/overview.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/api/overview.rst b/doc/api/overview.rst index c1a4582b5f..5213585f54 100644 --- a/doc/api/overview.rst +++ b/doc/api/overview.rst @@ -2,15 +2,15 @@ V2 API Overview ================ The PaddlePaddle V2 API is designed to provide a modern user interface for PaddlePaddle V1(the original layer-based platform of PaddlePaddle), -it proposes some high-level concepts such as `Layers`_ ,`Optimizer`_ ,`Evaluator``_ and `Data Reader`_ to make the model configuration more familiar to users. +it proposes some high-level concepts such as `Layers `_ , `Optimizer `_ , `Evaluator `_ and `Data Reader `_ to make the model configuration more familiar to users. A model is composed of the computation described by a group of `Layers`, with `Evaluator` to define the error, `Optimizer` to update the parameters and `Data Reader` to feed in the data. -We also provide the `interface for Training and Inference``_ to help control the training and inference phrase, it has several easy to use methods - `paddle.train` - `paddle.test` - `paddle.infer` -to better expose the internal running details, different `Events`_ are available to users by writing some callbacks. +to better expose the internal running details, different `Events `_ are available to users by writing some callbacks. From 6989d081996fd2d7d85b3d4addbd60048c5f36ec Mon Sep 17 00:00:00 2001 From: superjom Date: Sat, 24 Feb 2018 18:59:23 +0800 Subject: [PATCH 6/6] lowercase Events --- doc/api/overview.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/api/overview.rst b/doc/api/overview.rst index 5213585f54..16b6cf4266 100644 --- a/doc/api/overview.rst +++ b/doc/api/overview.rst @@ -13,4 +13,4 @@ it has several easy to use methods - `paddle.test` - `paddle.infer` -to better expose the internal running details, different `Events `_ are available to users by writing some callbacks. +to better expose the internal running details, different `events `_ are available to users by writing some callbacks.