PaddlePaddle(v0.10.0)源碼方式安裝

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

0、前言

  PaddlePaddle,百度旗下深度學習開源平台。
  2016年9月27日,百度宣布其全新的深度學習開源平台PaddlePaddle在開源社區Github及百度大腦平台開放,供廣大開發人員下載使用。百度成為繼Google、Facebook、IBM後另一個將人工智慧技術開源的科技巨頭,同時也是國內首個開源深度學習平台的科技公司。

---摘自百度百科:PaddlePaddle
下面是兩個有用的網址:
PaddlePaddle官網
百度技術學院-PaddlePaddle 深度學習實戰課程
看完實戰課程的前三個視頻,覺得不錯,同時官方只提供Docker的安裝模式,所以研究了一下,有了這篇源碼方式安裝的方式。
看【PaddlePaddle 深度學習實戰課程】的話推薦用Google瀏覽器,因為網址相容性問題,其他瀏覽器可能不能全屏不能播放聲音。

github的話,介紹一下這兩個:
PaddlePaddle/book
PaddlePaddle/Paddle

  • PaddlePaddle/book:這是離線教程,試過自己動手下載,缺少了jupyter notebook源檔案(.ipynb),只有產生的檔案,所以notebook的互動檔案沒了,下載docker版本的話,全部檔案都健在。

  • PaddlePaddle/Paddle:這是源碼,下載的時候記得用git clone,不要直接download zip壓縮檔,因為在滿足依賴的時候,編譯時間需要從git中擷取版本號碼。

從我docker方式安裝的時候發現運行paddle的環境是一個叫moby的linux發行版,接著也瞭解到:



圖片來自:如何評價百度剛剛開源的 Paddle 平台?
從表格來看,上手難度中等,並且很多中文文檔,還有視頻教程,以前試過入坑tensorflow,額,我沒去學,坑還沒入,看了看視頻教程標題,有我想要的東西,就用它了,愉快的決定了。

走過一遍源碼安裝之後,我想說非常非常費時,主要是各種牆(天朝就是強,等得我天荒地老),其實現成 的教程就在paddle項目中,裡面有個dockerfile



雖然這是給docker裡面的moby的安裝paddle的安裝指令碼,但是同是linux,也就可以用了

注意一點是核心版本不要太高,我在Deepin15.4.1(核心版本4.9)下,在make源碼的時候報錯了(即報error警告,不能繼續編譯了),最後轉到ubuntu下試了試才成功了。

大概過程如下:滿足環境->cmke->make->make install->
pip install /usr/local/opt/paddle/share/wheels/*.whl->paddle version

1、系統內容

系統:ubuntu16.04.2LTS
python版本:2.7
paddle版本:v0.10.0

2、滿足環境

PaddlePaddle的Docker容器使用方式--開發鏡像
官方說明:開發鏡像包含了以下工具:

  • gcc/clang -------------編譯的
  • nvcc -------------cuda的,沒有用到GPU可以不用安裝
  • Python
  • sphinx
  • woboq -------------指的是woboq下的woboq_codebrowser
  • sshd -------------按照文檔來理解,因該是ssh訪問docker用的

下面內容均來自源碼中的dockerfile
以下操作均在root使用者下進行

2.1從源安裝軟體

    apt-get update && \    apt-get install -y \    git python-pip python-dev openssh-server bison  \    wget unzip unrar tar xz-utils bzip2 gzip coreutils ntp \    curl sed grep graphviz libjpeg-dev zlib1g-dev  \    python-numpy python-matplotlib gcc g++ \    automake locales clang-format-3.8 swig doxygen cmake  \    liblapack-dev liblapacke-dev libboost-dev \    clang-3.8 llvm-3.8 libclang-3.8-dev \    net-tools && \    apt-get clean -y

可以看到需要pip包管理器來安裝python環境,openssh遠程用,python-numpy一些科學計算的庫,clang-3.8 llvm-3.8 libclang-3.8-dev這些是golang的編譯工具,因為源碼中有一個go檔案夾放置go語言的原始碼。沒有go的編譯器,我就試過報錯,不過那是在我,還沒發現dockerfile之前的事。

2.2安裝Go

wget -O go.tgz https://storage.googleapis.com/golang/go1.8.1.linux-amd64.tar.gztar -C /usr/local -xzf go.tgzmkdir /root/gopathmkdir /root/gopath/binmkdir /root/gopath/src

在/etc/profile中,添加環境變數:

export GOROOT=/usr/local/goexport GOPATH=/root/gopathPATH=${PATH}:${GOROOT}/bin:${GOPATH}/bin


上面是安裝go和配置go的環境變數

2.3安裝glide

curl -q https://glide.sh/get | sh

↑安裝glide。實際上很慢,我直接從源倉庫安裝:

apt-get install libglide3

2.4執行一些命令

git config --global credential.helper store

↑這句是自動儲存git使用者名稱和密碼的命令

localedef -i en_US -f UTF-8 en_US.UTF-8
apt-get install -y libssl-dev libffi-devpip install certifi urllib3[secure]

2.5pip安裝軟體

    pip install --upgrade pip && \    pip install -U 'protobuf==3.1.0' && \    pip install -U wheel pillow BeautifulSoup && \    pip install -U docopt PyYAML sphinx && \    pip install -U sphinx-rtd-theme==0.1.9 recommonmark && \    pip install pre-commit 'requests==2.9.2' 'ipython==5.3.0' && \    pip install 'ipykernel==4.6.0' 'jupyter==1.0.0' && \    pip install rarfile

首先更新一下pip本機快取,接著安裝軟體,裡面的protobuf沒有這個是編譯不通過的,還有一些jupyter notebook的東西

2.3安裝woboq_codebrowser到/woboq

git clone https://github.com/woboq/woboq_codebrowser /woboqcd /woboqcmake -DLLVM_CONFIG_EXECUTABLE=/usr/bin/llvm-config-3.8 \           -DCMAKE_BUILD_TYPE=Release .make

這裡的woboq是在根目錄下的目錄,因為/開頭的路徑。

3、cmake

在Paddle根目錄處:

cmake -DWITH_GPU=OFF -DWITH_AVX=ON -WITH_DOC=OFF

4、make

在Paddle根目錄處:

make

5、make install

在Paddle根目錄處:

make install

make install完一般是用命令使用了,但是還是報錯了,我們從中可以看到有一些.whl結尾的檔案,這是pip包管理器的東西,我們還沒安裝這些包,所以安裝完就好了,錯誤的時候我沒,所以將就文字描述吧。

6、pip安裝paddle產生的python包

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple /usr/local/opt/paddle/share/wheels/*.whl

這裡多加了一個添加源的參數選項而已。
其實這句命令是有跡可尋的:



在dockerfile結尾知道了這個檔案路徑,找到這個檔案,開啟:



看到一下安裝的命令,並且和報錯相吻合,運行這個明明果然,好了。

7、paddle version

直接運行paddle version,查看資訊和一些功能的開關情況:

paddle version


環境安裝完畢!

8、測試

在普通使用者下:

jupyter notebook


在前面安裝軟體的過程中,我們已經了jupyter notebook 直接輸入命令,瀏覽器就會快顯視窗,之後建立python的檔案,運行



代碼出處https://github.com/PaddlePaddle/book/blob/develop/01.fit_a_line/train.py
貼入如下代碼:

import paddle.v2 as paddleimport paddle.v2.dataset.uci_housing as uci_housingdef main():    # init    paddle.init(use_gpu=False, trainer_count=1)    # network config    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())    y = paddle.layer.data(name='y', type=paddle.data_type.dense_vector(1))    cost = paddle.layer.mse_cost(input=y_predict, label=y)    # create parameters    parameters = paddle.parameters.create(cost)    # create optimizer    optimizer = paddle.optimizer.Momentum(momentum=0)    trainer = paddle.trainer.SGD(        cost=cost, parameters=parameters, update_equation=optimizer)    feeding = {'x': 0, 'y': 1}    # event_handler to print training and testing info    def event_handler(event):        if isinstance(event, paddle.event.EndIteration):            if event.batch_id % 100 == 0:                print "Pass %d, Batch %d, Cost %f" % (                    event.pass_id, event.batch_id, event.cost)        if isinstance(event, paddle.event.EndPass):            result = trainer.test(                reader=paddle.batch(uci_housing.test(), batch_size=2),                feeding=feeding)            print "Test %d, Cost %f" % (event.pass_id, result.cost)    # training    trainer.train(        reader=paddle.batch(            paddle.reader.shuffle(uci_housing.train(), buf_size=500),            batch_size=2),        feeding=feeding,        event_handler=event_handler,        num_passes=30)if __name__ == '__main__':    main()


教程結束,最後嘮叨一下,除非很有空,不然正的很慢,建議用docker,我再家裡有個台式本來是下載docker的結果不支援虛擬化技術吧,我才這麼折騰,docker這個方式也是不錯的,起碼不用浪費那麼多時間,反覆看多幾遍如果不會,PaddlePaddle的Docker容器使用方式,裡面已經教了已經整合好的鏡像的下載步驟和鏡像搭建步驟,其實這篇東西就是從裡面自動搭建鏡像的指令碼中手工搞一遍而已。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.