PaddlePaddle 源码编译安装(Ubuntu 16.04
PaddlePaddle 是百度开源的一个深度学习框架,Paddle 提供的 Paddle book 对于那些深度学习入门的人简直再方便不过。
想用Paddle 进行模型训练必然先进行安装,这篇文章主要详细的记录一下Paddle cpu 和gpu 的源码编译安装。 个人认为源码的方式最简单粗暴,而且透明。
内容
- 安装依赖
- PaddlePaddle cpu 源码编译安装
- PaddlePaddle gpu 源码编译安装
在正式安装之前必须解决以下几个依赖问题
Note❕ ⚠️⚠️⚠️ 这块非常关键,以下的依赖只要有一个不满足的话,肯定编译出问题!无论cpu 还是gpu 安装都得解决以下依赖。
1.1
用gcc --version
命令 查看一下自己电脑上gcc 的版本,如果低于4.8, 那么请看这篇文章将gcc 进行升级到4.8以上。
1.2
用cmake --version
查看cmake的版本,如果版本低于3.0(对于linux)3.4(对于mac os), 请升级自己电脑的cmake版本。以下的命令可以安装cmake3.4。
curl -sSL https://cmake.org/files/v3.4/cmake-3.4.1.tar.gz | tar -xz && \
cd cmake-3.4.1 && ./bootstrap && make -j4 && sudo make install && \
cd .. && rm -rf cmake-3.4.1
1.3
用python --version
查看以下自己的python是不是python27, 一般情况,mac 和linux都自带python27。
1.4
用go version
命令查看自己电脑是否有go的环境,如果没有的话, 用sudo apt-get install golang
这条命令来安装
1.5 安装其他依赖
$ sudo apt-get install -y git curl gfortran make build-essential automake swig libboost-all-dev
$ sudo apt-get install -y python-pip python-numpy libpython-dev bison
$ pip install --upgrade pip
$ sudo pip install 'protobuf==3.1.0.post1'
$ sudo pip install wheel
Paddle CPU 编译和安装
- 从 github 上把Paddle 代码 clone到本地
$ git clone https://github.com/PaddlePaddle/Paddle.git paddle
$ cd paddle
- cmake 生成Makefile
$ mkdir build
$ cd build
$ cmake ..
Note : 如果使用命令cmake ..
来生成makefile, 最终的paddle 会安装到/usr/local 下,如果想安装到其他路径(我们假定这个路径为$PADDLE_INSTALL_PATH
), 我们可以这么写:
cmake .. -DCMAKE_INSTALL_PREFIX=$PADDLE_INSTALL_PATH
, 这样最终编译的paddle会安装到 $PADDLE_INSTALL_PATH
下。
- 编译安装
$ make -j `nproc`
$ sudo make install
Note : 因为我使用的是默认安装路径,最终要再全局环境(/usr/local
下)中生成文件,所以make 时候得加sudo
。运行结束后,Paddle已经编译完成, 在我的电脑上会显示以下log:
这就说明我们的paddle 已经安装完成,我们可以用命令paddle version
来查看是否安装成功:
$ paddle version
PaddlePaddle 0.10.0, compiled with
with_avx: OFF
with_gpu: OFF
with_mkldnn: OFF
with_mklml: OFF
with_double: OFF
with_python: ON
with_rdma: OFF
with_timer: OFF
- 安装Paddle python 接口
根据上一步骤的log可以看出,通过make install
后, 生成了一个/usr/local/opt/paddle/share/wheels/paddlepaddle-0.10.0-cp27-none-linux_x86_64.whl
文件。 运行以下命令进行paddle python 安装:
$ sudo pip install -U /usr/local/opt/paddle/share/wheels/paddlepaddle-0.10.0-cp27-none-linux_x86_64.whl
- 测试
$ python
>>> import paddle.v2 as paddle
如果没有出现 ImportError: No module named paddle
,那恭喜,你
已成功编译安装paddle for cpu。
- 跑一个demo
从 github上 clone paddle book 中的代码:
$ cd ~/
$ git clone https://github.com/PaddlePaddle/book.git paddle_book
$ cd paddle_book/01.fit_a_line
$ python train.py
Paddle GPU 编译和安装
- 安装CUDA和cuDNN
安装CUDA 8.0
$ sudo apt-get update && sudo apt-get install wget -y --no-install-recommends
$ wget "http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_8.0.61-1_amd64.deb"
$ sudo dpkg -i cuda-repo-ubuntu1604_8.0.61-1_amd64.deb
$ sudo apt-get update
$ sudo apt-get install cuda
安装cuDNN5.1
$ wget http://developer.download.nvidia.com/compute/redist/cudnn/v5.1/cudnn-8.0-linux-x64-v5.1.tgz
$ sudo tar -xzf cudnn-8.0-linux-x64-v5.1.tgz -C /usr/local
$ rm cudnn-8.0-linux-x64-v5.1.tgz && sudo ldconfig
- 编译安装(和cpu过程一样)
$ git clone https://github.com/PaddlePaddle/Paddle.git paddle_gpu
$ cd paddle_gpu
$ mkdir build
$ cd build
$ cmake ..
$ make -j `nproc`
$ sudo make install
$ sudo pip install -U /usr/local/opt/paddle/share/wheels/paddlepaddle-0.10.0-cp27-none-linux_x86_64.whl
- 测试
$ paddle version
PaddlePaddle 0.10.0, compiled with
with_avx: OFF
with_gpu: ON
with_mkldnn: OFF
with_mklml: OFF
with_double: OFF
with_python: ON
with_rdma: OFF
with_timer: OFF
可以看出with_gpu
是ON
的状态
- Run a Demo
从 github上 clone paddle book 中的代码:
$ cd ~/
$ git clone https://github.com/PaddlePaddle/book.git paddle_book
$ cd paddle_book/01.fit_a_line
$ export WITH_GPU=1
$ python train.py
到这里,paddle 的编译安装已经说的差不多了,不过因为每个人的机器环境不一样,很可能你按照上述的方法去安装时候还会遇到问题,可以在下方留言,或者去这里提issue, paddle 的同志们回复还是很快的。
最后, 非常推荐去看一下paddle book, 对想入门深度学习的筒子来说,这个book能能让你快速的了解学习深度学习在图像nlp以及推荐领域的应用!