當前位置:
首頁 > 知識 > 新手入門:一步一步教你如何安裝PaddlePaddle

新手入門:一步一步教你如何安裝PaddlePaddle

不久之前,機器之心聯合百度推出 PaddlePaddle 專欄,為想要學習這一平台的技術人員推薦相關教程與資源。在解析過PaddlePaddle框架之後,從這篇文章開始上手,安裝 PaddlePaddle。

目錄

環境

Windows 系統的安裝

在 Windows 上安裝 Docker 容器

在 Windows 上安裝 Ubuntu

使用 pip 安裝

使用 Docker 安裝

從源碼編譯生成安裝包

在本地編譯生成安裝包

在 Docker 編譯生成安裝包

編譯 Docker 鏡像

測試安裝環境

最後提示

項目代碼

參考資料

環境

系統:Ubuntu 16.0.4(64 位)

處理器:Intel(R) Celeron(R) CPU

內存:8G

Windows 系統的安裝

PaddlePaddle 目前還不支持 Windows,如果讀者直接在 Windows 上安裝 PaddlePaddlePaddle 的話,就會提示沒有找到該安裝包。如果讀者一定要在 Windows 上工作的話,筆者提供兩個建議:一、在 Windows 系統上使用 Docker 容器,在 Docker 容器上安裝帶有 PaddlePaddle 的鏡像;二、在 Windows 系統上安裝虛擬機,再在虛擬機上安裝 Ubuntu。

在 Windows 上安裝 Docker 容器

首先下載 Docker 容器的工具包 DockerToolbox,筆者使用這個安裝包不僅僅只有 Docker,它還包含了 VirtualBox 虛擬機,使用者工具包我們就不用單獨去安裝 VirtualBox 虛擬機了,DockerToolbox 的官網下載地址:https://docs.docker.com/toolbox/toolbox_install_windows/

下載之後,就可以直接安裝了,雙擊安裝包,開始安裝

請點擊此處輸入圖片描述

選擇安裝路徑,筆者使用默認的安裝路徑

請點擊此處輸入圖片描述

然後安裝所依賴的軟體,因為筆者之前在電腦上已經安裝了 git,所以在這裡就不安裝了,其他都要勾選

請點擊此處輸入圖片描述

這一步不用修改什麼,讓程序為我們創建一個桌面快捷鍵

請點擊此處輸入圖片描述

最後就可以安裝了,等待一小段時間即可

請點擊此處輸入圖片描述

到這裡就安裝完成了

請點擊此處輸入圖片描述

安裝完成之後,如果直接啟動 Docker 的話,有可能可能會卡在這裡,因為還有下載一個 boot2docker.iso 鏡像,網速比較慢的話就可能一直卡在這裡。所以我們還要鏡像下一步操作

Running pre-create checks...

(default) No default Boot2Docker ISO found locally, downloading the latest release...

(default) Latest release for github.com/boot2docker/boot2docker is v17.12.1-ce

(default) Downloading C:Users15696.dockermachinecacheoot2docker.iso from https://github.com/boot2docker/boot2docker/releases/download/v17.12.1-ce/boot2docker.iso...

在下載 DockerToolbox 的時候,這個工具就已經帶有 boot2docker.iso 鏡像了。並且存在 DockerToolbox 安裝的路徑上,筆者的路徑是:

C:Program FilesDocker Toolboxoot2docker.iso

我們把這個鏡像複製到用戶目錄.dockermachinecache,如筆者的目錄如下:

C:Users15696.dockermachinecache

複製完成之後,雙擊桌面快捷方式 Docker Quickstart Terminal,啟動 Docker,命令窗口會輸出以下信息:

Running pre-create checks...

Creating machine...

(default) Copying C:Users15696.dockermachinecacheoot2docker.iso to C:Users15696.dockermachinemachinesdefaultoot2docker.iso...

(default) Creating VirtualBox VM...

(default) Creating SSH key...

(default) Starting the VM...

(default) Check network to re-create if needed...

(default) Windows might ask for the permission to create a network adapter. Sometimes, such confirmation window is minimized in the taskbar.

(default) Found a new host-only adapter: "VirtualBox Host-Only Ethernet Adapter #3"

(default) Windows might ask for the permission to configure a network adapter. Sometimes, such confirmation window is minimized in the taskbar.

(default) Windows might ask for the permission to configure a dhcp server. Sometimes, such confirmation window is minimized in the taskbar.

(default) Waiting for an IP...

最後看到 Docker 的 logo 就表示成功安裝 Docker 容器了

## .

## ## ## ==

## ## ## ## ## ===

/"""""""""""""""""\___/ ===

~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ / ===- ~~~

\______ o __/

__/

\____\_______/

docker is configured to use the default machine with IP 192.168.99.100

For help getting started, check out the docs at https://docs.docker.com

Start interactive shell

15696@? MINGW64 ~

$

到這就可以使用 Docker 來安裝 PaddlePaddle 了,具體請看本文章中關於 Docker 使用 PaddlePaddle 部分

在 Windows 上安裝 Ubuntu

在 Windows 上在 Ubuntu 就要先安裝虛擬機,虛擬機有很多,筆者使用的是開源的 VirtualBox 虛擬機,VirtualBox 的官網:https://www.virtualbox.org/

安裝完成 VirtualBox 虛擬機之後,進入到 VirtualBox 虛擬機中點擊新建,創建一個系統

請點擊此處輸入圖片描述

選擇分配的內存,我這裡只是分配了 2G,如果正式使用 PaddlePaddle 訓練模型,這遠遠不夠,讀者可以根據需求分配內存

請點擊此處輸入圖片描述

創建一個虛擬硬碟

請點擊此處輸入圖片描述

選擇默認的 VDI 硬碟文件類型

請點擊此處輸入圖片描述

這裡最好是選擇動態分配硬碟,這樣虛擬機會根據實際佔用的空間大小使用電腦本身的磁碟大小,這樣會減少電腦空間的佔用率的。如果是固定大小,那麼創建的虛擬機的虛擬硬碟一開始就是用戶設置的大小了。

請點擊此處輸入圖片描述

這裡就是選擇虛擬硬碟大小的,最後分配 20G 以上,筆者分配 30G,應該夠用。

請點擊此處輸入圖片描述

然後選擇剛才創建的 Ubuntu 系統,點擊設置,這系統中取消勾選軟碟機,然後點擊存儲,選擇 Ubuntu 鏡像,筆者使用的是 64 位 Ubuntu 16.04 桌面版的鏡像

請點擊此處輸入圖片描述

最後就可以啟動安裝 Ubuntu 了。選擇我們創建的 Ubuntu 系統,點擊啟動,進入到開始安裝界面,為了方便使用,筆者選擇中文版的

請點擊此處輸入圖片描述

為了安裝之後不用在安裝和更新應用,筆者勾選了安裝 Ubuntu 時下載更新,這樣在安裝的時候就已經更新應用了

請點擊此處輸入圖片描述

然後是選安裝的硬碟,因為我們使用的自己創建的整一個硬碟,所以我們可以直接選擇青春整個硬碟並安裝 Ubuntu,這裡就不用考慮分區和掛載問題了

請點擊此處輸入圖片描述

選擇所在的位置,這沒什麼要求的,筆者隨便選擇一個城市

請點擊此處輸入圖片描述

然後是選擇鍵盤的布局,通常的鍵盤布局都是英語(美國)

請點擊此處輸入圖片描述

創建 Ubuntu 的用戶名稱和密碼

請點擊此處輸入圖片描述

最後就是安裝了,這個安裝過程可能有點久,耐心等待

請點擊此處輸入圖片描述

安裝完成之後就可以在 Windows 系統上使用 Ubuntu 系統了,我們再使用 Ubuntu 來學習和使用 PaddlePaddle 做深度學習了。最好安裝完成之後,把在存儲中設置的 Ubuntu 鏡像移除

請點擊此處輸入圖片描述

在本篇文章之後部分都是在 Ubuntu 上操作,我們都可以使用 Ubuntu 這虛擬機來完成。

如果讀者使用的是 Windows 10,可以使用 Windows 系統自帶的 Linux 子系統,安裝教程可以看我之前的文章 Windows10 安裝 Linux 子系統。

使用 pip 安裝

如果你還沒有在 pip 命令的話,首先要安裝 pip,要確保安裝的 pip 版本是大於 9.0.0 的,否則可能無法安裝 paddlepaddle。

安裝 pip 命令如下:

sudo apt install python-pip

安裝之後,還有看一下 pip 的的版本 pip --version,如果版本低於 9.0.0,那要先升級 pip,先要下載一個升級文件,命令如下:

wget https://bootstrap.pypa.io/get-pip.py

下載完成之後,可以使用這個文件安裝最新的 pip 了

python get-pip.py

安裝 pip 就可以動手安裝 paddlepaddle 了。如果許可權不夠,請在 root 下執行命令

pip install paddlepaddle

現在就測試看看 paddlepaddle 有沒有,在 python 的命令終端中試著導入 paddlepaddle 包:

import paddle.v2 as paddle

如果沒有報錯的話就證明 paddlepaddle 安裝成功了。

使用 Docker 安裝

為什麼要使用 Docker 安裝 paddlepaddle 呢,Docker 是完全使用沙箱機制的一個容器,在這個容器安裝的環境是不會影響到本身系統的環境的。通俗來說,它就是一個虛擬機,但是它本身的性能開銷很小。在使用 Docker 安裝 paddlepaddle 前,首先要安裝 Docker,通過下面的命令就可以安裝了:

sudo apt-get install docker

安裝完成之後,可以使用 docker --version 查看 Docker 的版本,如果有顯示,就證明安裝成功了。可以使用 docker images 查看已經安裝的鏡像。

一切都沒有問題之後,就可以用 Docker 安裝 paddlepaddle 了,命令如下:

docker pull docker.paddlepaddlehub.com/paddle

在這裡不得不說的是,這個安裝過程非常久,也許是筆者的帶寬太小了。安裝完成後,可以再使用 docker images 命令查看安裝的鏡像,應該可以 看到類似這樣一個鏡像,名字和 TAG 會相同,其他信息一般不同

docker.paddlepaddlehub.com/paddle latest 2b1ae16d846e 27 hours ago 1.338 GB

從源碼編譯生成安裝包

我們的硬體環境都有很大的不同,官方給出的 pip 安裝包不一定是符合我們的需求,比如筆者的電腦是不支持 AVX 指令集的,在官方中沒找到這個的安裝包(也行現在已經有了),所以我們要根據自己的需求來打包一個自己的安裝包。

在本地編譯生成安裝包

1. 安裝依賴環境

在一切開始之前,先要安裝好依賴環境,下面表格是官方給出的依賴環境

請點擊此處輸入圖片描述

1.1 安裝 GCC

一般現在的 Ubuntu 都是高於個版本了,可以使用 gcc --version 查看安裝的版本。比如筆者的是 4.8.4,如果你的是版本是低於 4.8.2 的就要更新一下了

sudo apt-get install gcc-4.9

1.2 安裝 CMake

先要從官網下 CMake 源碼

wget https://cmake.org/files/v3.8/cmake-3.8.0.tar.gz

解壓源碼

tar -zxvf cmake-3.8.0.tar.gz

依次執行下面的代碼

# 進入解壓後的目錄

cd cmake-3.8.0

# 執行當前目錄的 bootstrap 程序

./bootstrap

# make 一下

make

# 開始安裝

sudo make install

查看是否安裝成功,cmake --version,如果正常顯示版本,那已經安裝成功了。

1.3 安裝 pip

關於安裝 pip9.0.0 以上的版本,在上面的使用 pip 安裝部分已經講了,這裡就不在熬述了

1.4 安裝 numpy

安裝 numpy 很簡單,一條命令就夠了

sudo apt-get install python-numpy

順便多說一點,matplotlib 這個包也經常用到,順便安裝一下

sudo apt-get install python-matplotlib

1.5 安裝 SWIG

執行下面代碼安裝 SWIG,安裝成功之後,使用 swig -version 檢查安裝結果

sudo apt-get install -y git curl gfortran make build-essential automake swig libboost-all-dev

1.6 安裝 Go

官方說可選擇,那看情況吧,如果像安裝安裝吧,筆者順便安裝了,就一條代碼的事情,老規則 go version

sudo apt-get install golang

到這裡,依賴環境就已經安裝好了,準備安裝 paddlepaddle。

2. 首先要在 GitHub 上獲取 paddlepaddle 源碼

git clone https://github.com/PaddlePaddle/Paddle.git

3. 然後輸以下命令

# 進入剛下載的 Paddle 裡面

cd Paddle

# 創建一個 build 文件夾

mkdir build

# 進入 build 文件夾里

cd build

# 這就要選好你的需求了,比如筆者沒有使用 GPU,不支持 AVX,為了節省空間,我把測試關閉了,這樣會少很多空間。最後不要少了..

cmake .. -DWITH_GPU=OFF -DWITH_AVX=OFF -DWITH_TESTING=OFF

# 最後 make,生成你想要的安裝包,這個可能很久, 一定要有耐心

make

經過長久的 make 之後,終於生成了我們想要的安裝包,它的路徑在 Paddle/build/python/dist 下,比如筆者在該目錄下有這個安裝包 paddlepaddle-0.11.0-cp27-cp27mu-linux_x86_64.whl,你的命名可能不是這個。之後就可以安裝了,使用 pip 安裝:

# 請切入到該目錄

cd build/python/dist/

# 每個人的安裝包名字可能不一樣。如果許可權不夠,請在 root 下執行命令

pip install paddlepaddle-0.11.0-cp27-cp27mu-linux_x86_64.whl

這個我們就已經安裝了 paddlepaddle,現在就測試看看 paddlepaddle 有沒有安裝成功了,在 python 的命令終端中試著導入 paddlepaddle 包:

import paddle.v2 as paddle

如果沒有報錯的話就證明 paddlepaddle 安裝成功了。

在 Docker 編譯生成安裝包

使用 Docker 就輕鬆很多了,有多輕鬆,看一下便知 。

1. 首先要在 GitHub 上獲取 paddlepaddle 源碼

git clone https://github.com/PaddlePaddle/Paddle.git

2. 切入到項目的根目錄下

cd Paddle

3. 生成安裝包

下面一行代碼,提醒一下,這個過程非常長,一定要有耐心,順便把編譯測試關了,減少空間

docker run -it -v $PWD:/paddle -e "WITH_GPU=OFF" -e "WITH_AVX=OFF" -e "-DWITH_TESTING=OFF" docker.paddlepaddlehub.com/paddle:latest-dev bash -x /paddle/paddle/scripts/docker/build.sh

同樣會在 Paddle/build/python/dist 下生成一個安裝包,這對比在本地生成的安裝包,是不是要簡單很多,沒錯這就是 Docker 強大之處,所有的依賴環境都幫我們安裝好了,現在只要安裝這個安裝包就行了:

# 請切入到該目錄

cd build/python/dist/

# 每個人的安裝包名字可能不一樣。如果許可權不夠,請在 root 下執行命令

pip install paddlepaddle-0.11.0-cp27-cp27mu-linux_x86_64.whl

同樣我們要測試看看 paddlepaddle 有沒有安裝成功了,在 python 的命令終端中試著導入 paddlepaddle 包:

import paddle.v2 as paddle

如果沒有報錯的話就證明 paddlepaddle 安裝成功了。

編譯 Docker 鏡像

如果你比較喜歡使用 Docker 來運行你的 paddlepaddle 代碼,但是有沒有你想要的鏡像,這是就要自己來製作一個 Docker 鏡像了,比如筆者的電腦是不支持 AVX 指令集的,還只有 CPU,那麼我就要一個不用 AVX 指令集和使用 CPU 訓練的鏡像。好吧,我們開始吧

1. 我們要從 GitHub 下載源碼:

git clone https://github.com/PaddlePaddle/Paddle.git

2. 安裝開發工具到 Docker image 里

# 切入到 Paddle 目錄下

cd Paddle

# 下載依賴環境並創建鏡像,別少了最後的.

docker build -t paddle:dev .

有可能它不能夠命名為 paddle:dev,我們可以對他從重新命名,ID 要是你鏡像的 ID

# docker tag

例如:docker tag 1e835127cf33 paddle:dev

3. 編譯

# 這個編譯要很久的,請耐心等待

docker run --rm -e WITH_GPU=OFF -e WITH_AVX=OFF -v $PWD:/paddle paddle:dev

安裝完成之後,使用 docker images 查看剛才安裝的鏡像。

測試安裝環境

我們就使用官方給出的一個例子,來測試我們安裝 paddlepaddle 真的安裝成功了

1. 創建一個記事本,命名為 housing.py,並輸入以下代碼:

import paddle.v2 as paddle

# Initialize PaddlePaddle.

paddle.init(use_gpu=False, trainer_count=1)

# Configure the neural network.

x = paddle.layer.data(name="x", type=paddle.data_type.dense_vector(13))

y_predict = paddle.layer.fc(input=x, size=1, act=paddle.activation.Linear())

# Infer using provided test data.

probs = paddle.infer(

output_layer=y_predict,

parameters=paddle.dataset.uci_housing.model(),

input=[item for item in paddle.dataset.uci_housing.test()()])

for i in xrange(len(probs)):

print "Predicted price: ${:,.2f}".format(probs[i][0] * 1000)

2. 執行一下該代碼

在本地執行代碼請輸入下面的命令

python housing.py

在 Docker 上執行代碼的請輸入下面的代碼

docker run -v $PWD:/work -w /work -p 8899:8899 docker.paddlepaddle.org/paddle python housing.py

-v 命令是把本地目錄掛載到 docker 鏡像的目錄上,-w 設置該目錄為工作目錄,-p 設置埠號,使用到的鏡像是在使用 Docker 安裝部分安裝的鏡像 docker.paddlepaddle.org/paddle

3. 終端會輸出下面類似的日誌

I0116 08:40:12.004096 1 Util.cpp:166] commandline: --use_gpu=False --trainer_count=1

Cache file /root/.cache/paddle/dataset/fit_a_line.tar/fit_a_line.tar not found, downloading https://github.com/PaddlePaddle/book/raw/develop/01.fit_a_line/fit_a_line.tar

[==================================================]

Cache file /root/.cache/paddle/dataset/uci_housing/housing.data not found, downloading https://archive.ics.uci.edu/ml/machine-learning-databases/housing/housing.data

[==================================================]

Predicted price: $12,316.63

Predicted price: $13,830.34

Predicted price: $11,499.34

Predicted price: $17,395.05

Predicted price: $13,317.67

Predicted price: $16,834.08

Predicted price: $16,632.04

如果沒有成功運行該代碼,報錯信息如下,說明安裝的 paddlepaddle 版本過低,請安裝高版本的 paddlepaddle

I0116 13:53:48.957136 15297 Util.cpp:166] commandline: --use_gpu=False --trainer_count=1

Traceback (most recent call last):

File "housing.py", line 13, in

parameters=paddle.dataset.uci_housing.model(),

AttributeError: "module" object has no attribute "model"

最後提示

有很多學習者會出現明明安裝完成 PaddlePaddle 了,但是在 PaddlePaddle 的時候,在初始化 PaddlePaddle 這一行代碼出錯

paddle.init(use_gpu=False, trainer_count=1)

這個多數是讀者的電腦不支持 AVX 指令集,而在 PaddlePaddle 的時候,安裝的是支持 AVX 指令集的版本,所以導致在初始化 PaddlePaddle 的時候報錯。所以在安裝或者編譯 PaddlePaddle 安裝包時,要根據讀者電腦本身的情況,選擇是否支持 AVX 指令集。查看電腦是否支持 AVX 指令集,可以在終端輸入以下命令,輸出 Yes 表示支持,輸出 No 表示不支持。

if cat /proc/cpuinfo | grep -i avx; then echo Yes; else echo No; fi

項目代碼

GitHub 地址:https://github.com/yeyupiaoling/LearnPaddle

參考資料

http://paddlepaddle.org/

https://pip.pypa.io/en/stable/

http://www.runoob.com/

http://www.linuxidc.com/Linux/2016-12/138489.htm

https://www.jianshu.com/p/c6264cd5f5c7


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器之心 的精彩文章:

從LeCun調職看Facebook劇變:為AI軍備競賽改變方向

TAG:機器之心 |