PaddlePaddle编译安装1

PaddlePaddle的安装在官方网站已经比较详尽了,大多数用户可参考链接进行安装(https://www.paddlepaddle.org.cn/install/quick)。

PaddlePaddle目前仅支持Python语言进行训练,Python,C/C++语言进行模型推理。当前对Windows、OSX、Linux等多种操作系统进行支持。

但是快速安装的方案肯定不能满足有些用户的需求的,我这里就介绍一些编译Paddle的过程中会遇到的问题,希望能解决一些用户的困惑。

PaddlePaddle源码编译

现在PaddlePaddle支持在Windows, Ubuntu, Centos, OSX等操作系统上进行编译,具体可以参考PaddlePaddle官网编译里面的内容介绍。

前置条件

  1. CMake 3.0+
  2. GCC 4.8+
  3. Python(64 bit) 2.7+
  4. pip(64 bit) 9.0.1+
  5. Git
  6. GPU版本:CUDA 8.0+, cuDNN 7.3+

就目前来看,PaddlePaddle在Linux平台下的编译会比较顺畅一些,当然各平台的编译流程也是大同小异的。

Docker容器内编译

Docker这个软件非常的好,建议大家在docker中进行编译,因为虚拟化容器跟本地环境是隔离的,可以避免影响本地环境。
Docker介绍
如果还不了解docker的朋友,建议也去简单学习一下,这个东西是真的很有用处。
接下来就进入正题了。

  1. 首先是clone代码库,没有Git的朋友需要先装一下Git,或者在PaddlePaddle-Github里面下载代码的zip包也是可以的。
    如果安装了Git,就直接clone代码库到你想要的文件夹里。

    1
    git clone https://github.com/PaddlePaddle/Paddle.git
  2. 然后就可以创建编译环境了,官方提供了配置好部分环境的docker镜像hub.baidubce.com/paddlepaddle/paddle:latest-dev
    这个Ubuntu1604,CUDA8,cuDNN7.3的镜像,里面包含了CMake,python2.7,git等常用的软件。

但我更常用的是Nvidia给出的简单版的镜像
nvidia/cuda:9.0-cudnn7-devel-centos7
nvidia/cuda:9.2-cudnn7-devel-ubuntu16.04
然后自己构造一下所需环境。

cd到刚刚下载Paddle代码的路径
如果没有GPU和nvidia-docker则只能使用docker

1
docker run --name paddle-test -v $PWD:/paddle --network=host -w /paddle -it hub.baidubce.com/paddlepaddle/paddle:latest-dev /bin/bash

如果有GPU和nvidia-docker则执行以下代码

1
nvidia-docker run --name paddle-test -v $PWD:/paddle --network=host -w /paddle -it hub.baidubce.com/paddlepaddle/paddle:latest-dev /bin/bash

  1. 然后现在就可以开始编译了

首先在 paddle主路径下创建build文件夹并进入。

1
2
3
cd /paddle
mkdir build
cd build

然后CMake里面会有一些参数,可以根据自己的需求选择。
具体的参数可以在Paddle-CMakeLists里查看一下。然后以下命令就可以编译出GPU,Python3.5版本的PaddlePaddle了。

1
2
3
4
cmake .. -DPY_VERSION=3.5 \
-DWITH_GPU=ON \
-DWITH_TESTING=OFF \
-DCMAKE_BUILD_TYPE=Release
1
2
make -j$(nproc)
# -j后面可跟数字,指定并行编译的核数
  1. 完成编译之后

    编译出来的whl包就在 python/dist路径下。
    执行 pip install 即可