深度學習入門:詳解 Ubuntu 下 PaddlePaddle 原始碼編譯安裝
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 編譯和安裝
1. 從 github 上把 Paddle 程式碼 clone 到本地
$ git clone https://github.com/PaddlePaddle/Paddle.git paddle
$ cd paddle
2. 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
下。
3. 編譯安裝
$ 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
4. 安裝 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
5. 測試
$ python
>>> import paddle.v2 as paddle
如果沒有出現 ImportError: No module named paddle
,那恭喜,你已成功編譯安裝 paddle for cpu。
6. 跑一個 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 編譯和安裝
1. 安裝 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
2. 編譯安裝(和 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
3. 測試
$ 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
的狀態
4. 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 以及推薦領域的應用!