Welcome to the PaddlePaddle GitHub.
PaddlePaddle (PArallel Distributed Deep LEarning) is an easy-to-use, efficient, flexible and scalable deep learning platform, which is originally developed by Baidu scientists and engineers for the purpose of applying deep learning to many products at Baidu.
Our vision is to enable deep learning for everyone via PaddlePaddle. Please refer to our release announcement to track the latest feature of PaddlePaddle.
-
Flexibility
PaddlePaddle supports a wide range of neural network architectures and optimization algorithms. It is easy to configure complex models such as neural machine translation model with attention mechanism or complex memory connection.
-
Efficiency
In order to unleash the power of heterogeneous computing resource, optimization occurs at different levels of PaddlePaddle, including computing, memory, architecture and communication. The following are some examples:
- Optimized math operations through SSE/AVX intrinsics, BLAS libraries (e.g. MKL, ATLAS, cuBLAS) or customized CPU/GPU kernels.
- Highly optimized recurrent networks which can handle variable-length sequence without padding.
- Optimized local and distributed training for models with high dimensional sparse data.
-
Scalability
With PaddlePaddle, it is easy to use many CPUs/GPUs and machines to speed up your training. PaddlePaddle can achieve high throughput and performance via optimized communication.
-
Connected to Products
In addition, PaddlePaddle is also designed to be easily deployable. At Baidu, PaddlePaddle has been deployed into products or service with a vast number of users, including ad click-through rate (CTR) prediction, large-scale image classification, optical character recognition(OCR), search ranking, computer virus detection, recommendation, etc. It is widely utilized in products at Baidu and it has achieved a significant impact. We hope you can also exploit the capability of PaddlePaddle to make a huge impact for your product.
It is recommended to check out the Docker installation guide before looking into the build from source guide
We provide English and Chinese documentation.
-
You might want to start from this online interactive book that can run in Jupyter Notebook.
-
You can run distributed training jobs on MPI clusters.
-
Distributed Training on Kubernetes
You can also run distributed training jobs on Kubernetes clusters.
-
Our new API enables much shorter programs.
-
We appreciate your contributions!
You are welcome to submit questions and bug reports as Github Issues.
PaddlePaddle is provided under the Apache-2.0 license.