diff --git a/README.md b/README.md index 5c428e9900762a208eebbfd053ce98663f803345..6af30b14a10b0da62567715f619c1b8fe3d7bad3 100644 --- a/README.md +++ b/README.md @@ -3,8 +3,8 @@ English | [简体中文](./README_cn.md) [![Build Status](https://travis-ci.org/PaddlePaddle/Paddle.svg?branch=develop)](https://travis-ci.org/PaddlePaddle/Paddle) -[![Documentation Status](https://img.shields.io/badge/docs-latest-brightgreen.svg?style=flat)](http://paddlepaddle.org/documentation/docs/en/1.3/beginners_guide/index_en.html) -[![Documentation Status](https://img.shields.io/badge/中文文档-最新-brightgreen.svg)](http://paddlepaddle.org/documentation/docs/zh/1.3/beginners_guide/index.html) +[![Documentation Status](https://img.shields.io/badge/docs-latest-brightgreen.svg?style=flat)](http://www.paddlepaddle.org/documentation/docs/en/1.4/beginners_guide/index_en.html) +[![Documentation Status](https://img.shields.io/badge/中文文档-最新-brightgreen.svg)](http://www.paddlepaddle.org/documentation/docs/zh/1.4/beginners_guide/index_cn.html) [![Release](https://img.shields.io/github/release/PaddlePaddle/Paddle.svg)](https://github.com/PaddlePaddle/Paddle/releases) [![License](https://img.shields.io/badge/license-Apache%202-blue.svg)](LICENSE) @@ -18,7 +18,7 @@ learning to many products at Baidu. Our vision is to enable deep learning for everyone via PaddlePaddle. Please refer to our [release announcement](https://github.com/PaddlePaddle/Paddle/releases) to track the latest feature of PaddlePaddle. -### Latest PaddlePaddle Release: [Fluid 1.3.0](https://github.com/PaddlePaddle/Paddle/tree/release/1.3) +### Latest PaddlePaddle Release: [Fluid 1.4.1](https://github.com/PaddlePaddle/Paddle/tree/release/1.4) ### Install Latest Stable Release: ``` # Linux CPU @@ -26,9 +26,9 @@ pip install paddlepaddle # Linux GPU cuda9cudnn7 pip install paddlepaddle-gpu # Linux GPU cuda8cudnn7 -pip install paddlepaddle-gpu==1.3.0.post87 +pip install paddlepaddle-gpu==1.4.0.post87 # Linux GPU cuda8cudnn5 -pip install paddlepaddle-gpu==1.3.0.post85 +pip install paddlepaddle-gpu==1.4.0.post85 # For installation on other platform, refer to http://paddlepaddle.org/ ``` @@ -75,26 +75,26 @@ pip install paddlepaddle-gpu==1.3.0.post85 ## Installation -It is recommended to read [this doc](http://paddlepaddle.org/documentation/docs/en/1.3/beginners_guide/index_en.html) on our website. +It is recommended to read [this doc](http://www.paddlepaddle.org/documentation/docs/en/1.4/beginners_guide/index_en.html) on our website. ## Documentation -We provide [English](http://paddlepaddle.org/documentation/docs/en/1.3/beginners_guide/index_en.html) and -[Chinese](http://paddlepaddle.org/documentation/docs/zh/1.3/beginners_guide/index.html) documentation. +We provide [English](http://www.paddlepaddle.org/documentation/docs/en/1.4/beginners_guide/index_en.html) and +[Chinese](http://www.paddlepaddle.org/documentation/docs/zh/1.4/beginners_guide/install/index_cn.html) documentation. - [Deep Learning 101](https://github.com/PaddlePaddle/book) You might want to start from this online interactive book that can run in a Jupyter Notebook. -- [Distributed Training](http://paddlepaddle.org/documentation/docs/en/1.3/user_guides/howto/training/multi_node_en.html) +- [Distributed Training](http://paddlepaddle.org/documentation/docs/en/1.4/user_guides/howto/training/multi_node_en.html) You can run distributed training jobs on MPI clusters. -- [Python API](http://paddlepaddle.org/documentation/docs/en/1.3/api/index_en.html) +- [Python API](http://paddlepaddle.org/documentation/docs/en/1.4/api/index_en.html) Our new API enables much shorter programs. -- [How to Contribute](http://paddlepaddle.org/documentation/docs/en/1.3/advanced_usage/development/contribute_to_paddle/index_en.html) +- [How to Contribute](http://paddlepaddle.org/documentation/docs/en/1.4/advanced_usage/development/contribute_to_paddle/index_en.html) We appreciate your contributions! diff --git a/README_cn.md b/README_cn.md index b7b0e75e5524cc483a8c203a382e7f339f91694f..17f61c70aacac7962bff2636c591f3459bace9b4 100644 --- a/README_cn.md +++ b/README_cn.md @@ -3,8 +3,8 @@ [English](./README.md) | 简体中文 [![Build Status](https://travis-ci.org/PaddlePaddle/Paddle.svg?branch=develop)](https://travis-ci.org/PaddlePaddle/Paddle) -[![Documentation Status](https://img.shields.io/badge/docs-latest-brightgreen.svg?style=flat)](http://paddlepaddle.org/documentation/docs/en/1.3/beginners_guide/index_en.html) -[![Documentation Status](https://img.shields.io/badge/中文文档-最新-brightgreen.svg)](http://paddlepaddle.org/documentation/docs/zh/1.3/beginners_guide/index.html) +[![Documentation Status](https://img.shields.io/badge/docs-latest-brightgreen.svg?style=flat)](http://www.paddlepaddle.org/documentation/docs/en/1.4/beginners_guide/index_en.html) +[![Documentation Status](https://img.shields.io/badge/中文文档-最新-brightgreen.svg)](http://www.paddlepaddle.org/documentation/docs/zh/1.4/beginners_guide/index_cn.html) [![Release](https://img.shields.io/github/release/PaddlePaddle/Paddle.svg)](https://github.com/PaddlePaddle/Paddle/releases) [![License](https://img.shields.io/badge/license-Apache%202-blue.svg)](LICENSE) @@ -16,7 +16,7 @@ PaddlePaddle (PArallel Distributed Deep LEarning) 是一个简单易用、高效 跟进PaddlePaddle最新特性请参考我们的[版本说明](https://github.com/PaddlePaddle/Paddle/releases) -### PaddlePaddle最新版本: [Fluid 1.3.0](https://github.com/PaddlePaddle/Paddle/tree/release/1.3) +### PaddlePaddle最新版本: [Fluid 1.4.1](https://github.com/PaddlePaddle/Paddle/tree/release/1.4) ### 安装最新稳定版本: ``` # Linux CPU @@ -24,9 +24,9 @@ pip install paddlepaddle # Linux GPU cuda9cudnn7 pip install paddlepaddle-gpu # Linux GPU cuda8cudnn7 -pip install paddlepaddle-gpu==1.3.0.post87 +pip install paddlepaddle-gpu==1.4.1.post87 # Linux GPU cuda8cudnn5 -pip install paddlepaddle-gpu==1.3.0.post85 +pip install paddlepaddle-gpu==1.4.1.post85 # 其他平台上的安装指引请参考 http://paddlepaddle.org/ ``` @@ -57,26 +57,26 @@ pip install paddlepaddle-gpu==1.3.0.post85 ## 安装 -推荐阅读官网上的[安装说明](http://paddlepaddle.org/documentation/docs/zh/1.3/beginners_guide/install/index_cn.html) +推荐阅读官网上的[安装说明](http://www.paddlepaddle.org/documentation/docs/zh/1.4/beginners_guide/install/index_cn.html) ## 文档 -我们提供[英文](http://paddlepaddle.org/documentation/docs/en/1.3/beginners_guide/index_en.html)和 -[中文](http://paddlepaddle.org/documentation/docs/zh/1.3/beginners_guide/index.html) 文档 +我们提供[英文](http://www.paddlepaddle.org/documentation/docs/en/1.4/beginners_guide/index_en.html)和 +[中文](http://www.paddlepaddle.org/documentation/docs/zh/1.4/beginners_guide/install/index_cn.html) 文档 - [深度学习101](https://github.com/PaddlePaddle/book) 或许您想从这个在线交互式书籍开始,可以在Jupyter Notebook中运行 -- [分布式训练](http://paddlepaddle.org/documentation/docs/zh/1.3/user_guides/howto/training/multi_node.html) +- [分布式训练](http://paddlepaddle.org/documentation/docs/zh/1.4/user_guides/howto/training/multi_node.html) 可以在MPI集群上运行分布式训练任务 -- [Python API](http://paddlepaddle.org/documentation/docs/zh/1.3/api_cn/index_cn.html) +- [Python API](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/index_cn.html) 新的API支持代码更少更简洁的程序 -- [贡献方式](http://paddlepaddle.org/documentation/docs/zh/1.3/advanced_usage/development/contribute_to_paddle/index_cn.html) +- [贡献方式](http://paddlepaddle.org/documentation/docs/zh/1.4/advanced_usage/development/contribute_to_paddle/index_cn.html) 欢迎您的贡献! diff --git a/RELEASE.cn.md b/RELEASE.cn.md deleted file mode 100644 index 494c59730dd3c2830514e8924aa3d59a34ac412e..0000000000000000000000000000000000000000 --- a/RELEASE.cn.md +++ /dev/null @@ -1,139 +0,0 @@ -# v0.11.0版本 - -## PaddlePaddle Fluid - -- PaddlePaddle发布版本v0.11.0包含一个新的特性*PaddlePaddle Fluid*. Fluid 是设计用来让用户像Pytorch和Tensorflow Eager Execution一样执行程序。在这些系统中,不再有*模型*这个概念,应用也不再包含一个用于描述Operator图或者一系列层的符号描述,而是像通用程序那样描述训练或者预测的过程。而Fluid与PyTorch或Eager Execution的区别在于Fluid不依赖Python提供的控制流,例如 if-else-then或者for,而是提供了基于C++实现的控制流并暴露了对应的用with语法实现的Python接口。例如: - - https://github.com/PaddlePaddle/Paddle/blob/3df78ed2a98d37f7ae6725894cc7514effd5664b/python/paddle/v2/fluid/tests/test_while_op.py#L36-L44 - -- 在v0.11.0版本中,我们提供了一个C++类`Executor`用于运行一个Fluid程序。Executor类似一个解释器。在未来的版本中,我们将提升和优化Executor成为一个调试器,就像GDB。并可能提供一些编译器,这个编译器会读取一个上文所描述的应用然后编译成一个等价的 -源代码,这个源代码可以被nvcc编译成可以使用CUDA的二进制,或者被icc编译成可以充分利用Intel CPU的二进制。 - - -## 新特点 - -* 发布 `PaddlePaddle Fluid`。 -* 增加了用于模型预测的C-API。 -* 用Fluid API实现了一个简单的GAN的例子。 -* 增加了关于性能调优的文档。 -* 为`paddle.v2.dataset`下载数据集提供了重试机制. -* C++中使用protobuf-lite替换protobuf减少了二进制的大小。 -* 发布了新特性 [Elastic Deep Learning (EDL)](https://github.com/PaddlePaddle/cloud/tree/develop/doc/autoscale/experiment). -* 基于Bazel API利用cmake实现了一个的新的构建系统函数库。 -* 当使用编译选项`WITH_MKL=ON`时自动下载和编译Intel® [MKLML](https://github.com/01org/mkl-dnn/releases/download/v0.11/mklml_lnx_2018.0.1.20171007.tgz) 函数库. -* [Intel® MKL-DNN on PaddlePaddle](https://github.com/PaddlePaddle/Paddle/tree/develop/doc/design/mkldnn): - - 完成了 11个 MKL-DNN 层: Convolution, Fully connectivity, Pooling, ReLU, Tanh, ELU, Softmax, BatchNorm, AddTo, Concat, LRN。 - - 完成了 3个 MKL-DNN 网络: VGG-19, ResNet-50, GoogleNet - - 基于Intel Skylake 6148 CPU的[性能测试](https://github.com/PaddlePaddle/Paddle/blob/develop/benchmark/IntelOptimizedPaddle.md) : 相对于MKLML有2~3倍的训练加速。 -* 增加 [softsign activation](http://www.paddlepaddle.org/docs/develop/documentation/zh/api/v2/config/activation.html#softsign) -* 增加 [dot product layer](http://www.paddlepaddle.org/docs/develop/documentation/zh/api/v2/config/layer.html#dot-prod) -* 增加 [L2 distance layer](http://www.paddlepaddle.org/docs/develop/documentation/zh/api/v2/config/layer.html#l2-distance) -* 增加 [sub-nested sequence layer](http://www.paddlepaddle.org/docs/develop/documentation/zh/api/v2/config/layer.html#sub-nested-seq) -* 增加 [kmax sequence score layer](http://www.paddlepaddle.org/docs/develop/documentation/zh/api/v2/config/layer.html#kmax-sequence-score) -* 增加 [sequence slice layer](http://www.paddlepaddle.org/docs/develop/documentation/zh/api/v2/config/layer.html#seq-slice) -* 增加 [row convolution layer](http://www.paddlepaddle.org/docs/develop/documentation/zh/api/v2/config/layer.html#row-conv) -* 增加移动端友好的网页 - -## 改进 - -* 使用一个Python`whl`包即可安装. -* [V2 API可以实现用户定制化评估](https://github.com/PaddlePaddle/models/tree/develop/ltr#训练过程中输出自定义评估指标)。 -* 将 `PADDLE_ONLY_CPU` 改为 `PADDLE_WITH_GPU`, 因为我们会支持多种设备。 -* 删除了有一些bug的BarrierStat。 -* 清理和删除了paddle::Parameter中未使用的函数。 -* 删除了ProtoDataProvider。 -* Huber loss同时支持回归和分类。 -* 为sequence pooling 层增加`stride`参数。 -* v2 API自动使用cudnn batch normalization。 -* 可以使用一个固定的参数名共享BN层的参数。 -* 2D convolution operation支持variable-dimension input特性。 -* 重构cmake中关于CUDA的部分并实现自动检测GPU架构的功能。 -* 优化网页导航。 - -## 错误修复 - -* 修复ROI pooling的Bug. cc9a761 -* 修复当label是dense vector是AUC变成0的问题. #5274 -* 修复WarpCTC 层的Bug. - - -# v0.10.0版本 - -我们非常高兴发布了PaddlePaddle V0.10.0版,并开发了新的[Python API](http://research.baidu.com/paddlepaddles-new-api-simplifies-deep-learning-programs/)。 - -- 旧的Python API由于难以学习和使用已经过时了。使用旧版本的API至少需要两份python文件,分别是定义数据生成器和定义网络拓扑结构的文件。用户通过运行`paddle_trainer`的C++程序来启动PaddlePaddle任务,该程序调用Python解释器来运行定义网络拓扑结构的文件,然后通过迭代加载数据生成器提供的小批量数据启动训练循环。这与Python的现代编辑方式不符,比如Jupyter Notebook。 - -- 新版的API被称为 *V2 API*,允许我们在单个.py文件中,通过编辑更短的Python程序来定义网络结构和数据。此外,该Python程序也可以在Jupyter Notebook中运行,因为PaddlePaddle可以作为共享库来被Python程序加载和使用。 - -基于新的API,我们提供了一个在线的学习文档 [Deep Learning 101](http://book.paddlepaddle.org/index.en.html) 及其[中文版本](http://book.paddlepaddle.org/)。 - -我们还致力于迭代更新新版API的在线文档,并将新版API引入分布式集群(包括MPI和Kubernetes)训练中。我们将在下一个版本中发布更多的内容。 - -## 新特点 - -* 发布新版[Python API](http://research.baidu.com/paddlepaddles-new-api-simplifies-deep-learning-programs/)。 -* 发布深度学习系列课程 [Deep Learning 101](http://book.paddlepaddle.org/index.en.html) 及其[中文版本](http://book.paddlepaddle.org/)。 -* 支持矩形输入的CNN。 -* 为seqlastin和seqfirstin提供stride pooling。 -* 在`trainer_config_helpers`中暴露`seq_concat_layer/seq_reshape_layer`。 -* 添加公共数据集包:CIFAR,MNIST,IMDB,WMT14,CONLL05,movielens,imikolov。 -* 针对Single Shot Multibox Detection增加 Prior box layer。 -* 增加光滑的L1损失。 -* 在V2 API中增加 data reader 创建器和修饰器。 -* 增加cmrnorm投影的CPU实现。 - - -## 改进 - -* 提供`paddle_trainer`的Python virtualenv支持。 -* 增加代码自动格式化的pre-commit hooks。 -* 升级protobuf到3.x版本。 -* 在Python数据生成器中提供一个检测数据类型的选项。 -* 加速GPU中average层的后向反馈计算。 -* 细化文档。 -* 使用Travis-CI检查文档中的死链接。 -* 增加解释`sparse_vector`的示例。 -* 在layer_math.py中添加ReLU。 -* 简化Quick Start示例中的数据处理流程。 -* 支持CUDNN Deconv。 -* 在v2 API中增加数据feeder。 -* 在情感分析示例的演示中增加对标准输入流中样本的预测。 -* 提供图像预处理的多进程接口。 -* 增加V1 API的基准文档。 -* 在`layer_math.py`中增加ReLU。 -* 提供公共数据集的自动下载包。 -* 将`Argument::sumCost`重新命名为`Argument::sum`,并暴露给python。 -* 为矩阵相关的表达式评估增加一个新的`TensorExpression`实现。 -* 增加延迟分配来优化批处理多表达式计算。 -* 增加抽象的类函数及其实现: - * `PadFunc` 和 `PadGradFunc`。 - * `ContextProjectionForwardFunc` 和 `ContextProjectionBackwardFunc`。 - * `CosSimBackward` 和 `CosSimBackwardFunc`。 - * `CrossMapNormalFunc` 和 `CrossMapNormalGradFunc`。 - * `MulFunc`。 -* 增加`AutoCompare`和`FunctionCompare`类,使得编写比较gpu和cpu版本函数的单元测试更容易。 -* 生成`libpaddle_test_main.a`并删除测试文件内的主函数。 -* 支持PyDataProvider2中numpy的稠密向量。 -* 清理代码库,删除一些复制粘贴的代码片段: - * 增加`SparseRowMatrix`的抽样类`RowBuffer`。 - * 清理`GradientMachine`的接口。 - * 在layer中增加`override`关键字。 - * 简化`Evaluator::create`,使用`ClassRegister`来创建`Evaluator`。 -* 下载演示的数据集时检查MD5校验。 -* 添加`paddle::Error`,用于替代Paddle中的`LOG(FATAL)`。 - - -## 错误修复 - -* 检查`recurrent_group`的layer输入类型。 -* 不要用.cu源文件运行`clang-format`。 -* 修复`LogActivation`的使用错误。 -* 修复运行`test_layerHelpers`多次的错误。 -* 修复seq2seq示例超出消息大小限制的错误。 -* 修复在GPU模式下dataprovider转换的错误。 -* 修复`GatedRecurrentLayer`中的错误。 -* 修复在测试多个模型时`BatchNorm`的错误。 -* 修复paramRelu在单元测试时崩溃的错误。 -* 修复`CpuSparseMatrix`编译时相关的警告。 -* 修复`MultiGradientMachine`在`trainer_count > batch_size`时的错误。 -* 修复`PyDataProvider2`阻止异步加载数据的错误。 diff --git a/RELEASE.md b/RELEASE.md index 5a62c955131007c9f3329d162c20d1b462550019..2c64baaaab7d12dde46f6660286ec8475699746b 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -1,242 +1,3 @@ -# Release v0.11.0 +# Release Note -## PaddlePaddle Fluid - -- Release 0.11.0 includes a new feature *PaddlePaddle Fluid*. Fluid is - designed to allow users to program like PyTorch and TensorFlow Eager Execution. - In these systems, there is no longer the concept *model* and applications - do not include a symbolic description of a graph of operators nor a sequence - of layers. Instead, applications look exactly like a usual program that - describes a process of training or inference. The difference between - Fluid and PyTorch or Eager Execution is that Fluid doesn't rely on Python's - control-flow, `if-then-else` nor `for`. Instead, Fluid provides its - C++ implementations and their Python binding using the `with` statement. For an example - - https://github.com/PaddlePaddle/Paddle/blob/3df78ed2a98d37f7ae6725894cc7514effd5664b/python/paddle/v2/fluid/tests/test_while_op.py#L36-L44 - -- In 0.11.0, we provides a C++ class `Executor` to run a Fluid program. -Executor works like an interpreter. In future version, we will improve -`Executor` into a debugger like GDB, and we might provide some compilers, -which, for example, takes an application like the above one, and outputs -an equivalent C++ source program, which can be compiled using -[`nvcc`](http://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html) -to generate binaries that use CUDA, or using -[`icc`](https://software.intel.com/en-us/c-compilers) to generate binaries -that make full use of Intel CPUs. - -## New Features - -* Release `PaddlePaddle Fluid`. -* Add C-API for model inference -* Use fluid API to create a simple GAN demo. -* Add develop guide about performance tunning. -* Add retry when download `paddle.v2.dataset`. -* Linking protobuf-lite not protobuf in C++. Reduce the binary size. -* Feature [Elastic Deep Learning (EDL)](https://github.com/PaddlePaddle/cloud/tree/develop/doc/autoscale/experiment) released. -* A new style cmake functions for Paddle. It is based on Bazel API. -* Automatically download and compile with Intel® [MKLML](https://github.com/01org/mkl-dnn/releases/download/v0.11/mklml_lnx_2018.0.1.20171007.tgz) library as CBLAS when build `WITH_MKL=ON`. -* [Intel® MKL-DNN on PaddlePaddle](https://github.com/PaddlePaddle/Paddle/tree/develop/doc/design/mkldnn): - - Complete 11 MKL-DNN layers: Convolution, Fully connectivity, Pooling, ReLU, Tanh, ELU, Softmax, BatchNorm, AddTo, Concat, LRN. - - Complete 3 MKL-DNN networks: VGG-19, ResNet-50, GoogleNet - - [Benchmark](https://github.com/PaddlePaddle/Paddle/blob/develop/benchmark/IntelOptimizedPaddle.md) on Intel Skylake 6148 CPU: 2~3x training speedup compared with MKLML. -* Add the [`softsign` activation](http://www.paddlepaddle.org/docs/develop/documentation/zh/api/v2/config/activation.html#softsign). -* Add the [dot product layer](http://www.paddlepaddle.org/docs/develop/documentation/zh/api/v2/config/layer.html#dot-prod). -* Add the [L2 distance layer](http://www.paddlepaddle.org/docs/develop/documentation/zh/api/v2/config/layer.html#l2-distance). -* Add the [sub-nested sequence layer](http://www.paddlepaddle.org/docs/develop/documentation/zh/api/v2/config/layer.html#sub-nested-seq). -* Add the [kmax sequence score layer](http://www.paddlepaddle.org/docs/develop/documentation/zh/api/v2/config/layer.html#kmax-sequence-score). -* Add the [sequence slice layer](http://www.paddlepaddle.org/docs/develop/documentation/zh/api/v2/config/layer.html#seq-slice). -* Add the [row convolution layer](http://www.paddlepaddle.org/docs/develop/documentation/zh/api/v2/config/layer.html#row-conv) -* Add mobile friendly webpages. - -## Improvements - -* Build and install using a single `whl` package. -* [Custom evaluating in V2 API](https://github.com/PaddlePaddle/models/tree/develop/ltr#训练过程中输出自定义评估指标). -* Change `PADDLE_ONLY_CPU` to `PADDLE_WITH_GPU`, since we will support many kinds of devices. -* Remove buggy BarrierStat. -* Clean and remove unused functions in paddle::Parameter. -* Remove ProtoDataProvider. -* Huber loss supports both regression and classification. -* Add the `stride` parameter for sequence pooling layers. -* Enable v2 API use cudnn batch normalization automatically. -* The BN layer's parameter can be shared by a fixed the parameter name. -* Support variable-dimension input feature for 2D convolution operation. -* Refine cmake about CUDA to automatically detect GPU architecture. -* Improved website navigation. - -## Bug Fixes - -* Fix bug in ROI pooling. cc9a761 -* Fix AUC is zero when label is dense vector. #5274 -* Fix bug in WarpCTC layer. - -# Release v0.10.0 - -We are glad to release version 0.10.0. In this version, we are happy to release the new -[Python API](http://research.baidu.com/paddlepaddles-new-api-simplifies-deep-learning-programs/). - -- Our old Python API is kind of out of date. It's hard to learn and hard to - use. To write a PaddlePaddle program using the old API, we'd have to write - at least two Python files: one `data provider` and another one that defines - the network topology. Users start a PaddlePaddle job by running the - `paddle_trainer` C++ program, which calls Python interpreter to run the - network topology configuration script and then start the training loop, - which iteratively calls the data provider function to load minibatches. - This prevents us from writing a Python program in a modern way, e.g., in the - Jupyter Notebook. - -- The new API, which we often refer to as the *v2 API*, allows us to write - much shorter Python programs to define the network and the data in a single - .py file. Also, this program can run in Jupyter Notebook, since the entry - point is in Python program and PaddlePaddle runs as a shared library loaded - and invoked by this Python program. - -Basing on the new API, we delivered an online interative -book, [Deep Learning 101](http://book.paddlepaddle.org/index.en.html) -and [its Chinese version](http://book.paddlepaddle.org/). - -We also worked on updating our online documentation to describe the new API. -But this is an ongoing work. We will release more documentation improvements -in the next version. - -We also worked on bring the new API to distributed model training (via MPI and -Kubernetes). This work is ongoing. We will release more about it in the next -version. - -## New Features - -* We release [new Python API](http://research.baidu.com/paddlepaddles-new-api-simplifies-deep-learning-programs/). -* Deep Learning 101 book in [English](http://book.paddlepaddle.org/index.en.html) and [Chinese](http://book.paddlepaddle.org/). -* Support rectangle input for CNN. -* Support stride pooling for seqlastin and seqfirstin. -* Expose `seq_concat_layer/seq_reshape_layer` in `trainer_config_helpers`. -* Add dataset package: CIFAR, MNIST, IMDB, WMT14, CONLL05, movielens, imikolov. -* Add Priorbox layer for Single Shot Multibox Detection. -* Add smooth L1 cost. -* Add data reader creator and data reader decorator for v2 API. -* Add the CPU implementation of cmrnorm projection. - -## Improvements - -* Support Python virtualenv for `paddle_trainer`. -* Add pre-commit hooks, used for automatically format our code. -* Upgrade protobuf to version 3.x. -* Add an option to check data type in Python data provider. -* Speedup the backward of average layer on GPU. -* Documentation refinement. -* Check dead links in documents using Travis-CI. -* Add a example for explaining `sparse_vector`. -* Add ReLU in layer_math.py -* Simplify data processing flow for Quick Start. -* Support CUDNN Deconv. -* Add data feeder in v2 API. -* Support predicting the samples from sys.stdin for sentiment demo. -* Provide multi-proccess interface for image preprocessing. -* Add benchmark document for v1 API. -* Add ReLU in `layer_math.py`. -* Add packages for automatically downloading public datasets. -* Rename `Argument::sumCost` to `Argument::sum` since class `Argument` is nothing with cost. -* Expose Argument::sum to Python -* Add a new `TensorExpression` implementation for matrix-related expression evaluations. -* Add lazy assignment for optimizing the calculation of a batch of multiple expressions. -* Add abstract calss `Function` and its implementation: - * `PadFunc` and `PadGradFunc`. - * `ContextProjectionForwardFunc` and `ContextProjectionBackwardFunc`. - * `CosSimBackward` and `CosSimBackwardFunc`. - * `CrossMapNormalFunc` and `CrossMapNormalGradFunc`. - * `MulFunc`. -* Add class `AutoCompare` and `FunctionCompare`, which make it easier to write unit tests for comparing gpu and cpu version of a function. -* Generate `libpaddle_test_main.a` and remove the main function inside the test file. -* Support dense numpy vector in PyDataProvider2. -* Clean code base, remove some copy-n-pasted code snippets: - * Extract `RowBuffer` class for `SparseRowMatrix`. - * Clean the interface of `GradientMachine`. - * Use `override` keyword in layer. - * Simplify `Evaluator::create`, use `ClassRegister` to create `Evaluator`s. -* Check MD5 checksum when downloading demo's dataset. -* Add `paddle::Error` which intentially replace `LOG(FATAL)` in Paddle. - -## Bug Fixes - -* Check layer input types for `recurrent_group`. -* Don't run `clang-format` with .cu source files. -* Fix bugs with `LogActivation`. -* Fix the bug that runs `test_layerHelpers` multiple times. -* Fix the bug that the seq2seq demo exceeds protobuf message size limit. -* Fix the bug in dataprovider converter in GPU mode. -* Fix a bug in `GatedRecurrentLayer`. -* Fix bug for `BatchNorm` when testing more than one models. -* Fix broken unit test of paramRelu. -* Fix some compile-time warnings about `CpuSparseMatrix`. -* Fix `MultiGradientMachine` error when `trainer_count > batch_size`. -* Fix bugs that prevents from asynchronous data loading in `PyDataProvider2`. - -# Release v0.9.0 - -## New Features: - -* New Layers - * bilinear interpolation layer. - * spatial pyramid-pool layer. - * de-convolution layer. - * maxout layer. -* Support rectangle padding, stride, window and input for Pooling Operation. -* Add —job=time in trainer, which can be used to print time info without compiler option -WITH_TIMER=ON. -* Expose cost_weight/nce_layer in `trainer_config_helpers` -* Add FAQ, concepts, h-rnn docs. -* Add Bidi-LSTM and DB-LSTM to quick start demo @alvations -* Add usage track scripts. - -## Improvements - -* Add Travis-CI for Mac OS X. Enable swig unittest in Travis-CI. Skip Travis-CI when only docs are changed. -* Add code coverage tools. -* Refine convolution layer to speedup and reduce GPU memory. -* Speed up PyDataProvider2 -* Add ubuntu deb package build scripts. -* Make Paddle use git-flow branching model. -* PServer support no parameter blocks. - -## Bug Fixes - -* add zlib link to py_paddle -* add input sparse data check for sparse layer at runtime -* Bug fix for sparse matrix multiplication -* Fix floating-point overflow problem of tanh -* Fix some nvcc compile options -* Fix a bug in yield dictionary in DataProvider -* Fix SRL hang when exit. - -# Release v0.8.0beta.1 -New features: - -* Mac OSX is supported by source code. #138 - * Both GPU and CPU versions of PaddlePaddle are supported. - -* Support CUDA 8.0 - -* Enhance `PyDataProvider2` - * Add dictionary yield format. `PyDataProvider2` can yield a dictionary with key is data_layer's name, value is features. - * Add `min_pool_size` to control memory pool in provider. - -* Add `deb` install package & docker image for no_avx machines. - * Especially for cloud computing and virtual machines - -* Automatically disable `avx` instructions in cmake when machine's CPU don't support `avx` instructions. - -* Add Parallel NN api in trainer_config_helpers. - -* Add `travis ci` for Github - -Bug fixes: - -* Several bugs in trainer_config_helpers. Also complete the unittest for trainer_config_helpers -* Check if PaddlePaddle is installed when unittest. -* Fix bugs in GTX series GPU -* Fix bug in MultinomialSampler - -Also more documentation was written since last release. - -# Release v0.8.0beta.0 - -PaddlePaddle v0.8.0beta.0 release. The install package is not stable yet and it's a pre-release version. +Please turn to [here](https://github.com/PaddlePaddle/Paddle/releases) for release note.