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

0靡菇、前言

PaddlePaddle,百度旗下深度學(xué)習(xí)開源平臺(tái)灵临。
??2016年9月27日潮瓶,百度宣布其全新的深度學(xué)習(xí)開源平臺(tái)PaddlePaddle在開源社區(qū)Github及百度大腦平臺(tái)開放,供廣大開發(fā)者下載使用晌梨。百度成為繼Google桥嗤、Facebook、IBM后另一個(gè)將人工智能技術(shù)開源的科技巨頭仔蝌,同時(shí)也是國(guó)內(nèi)首個(gè)開源深度學(xué)習(xí)平臺(tái)的科技公司泛领。

---摘自百度百科:PaddlePaddle
下面是兩個(gè)有用的網(wǎng)址:
PaddlePaddle官網(wǎng)
百度技術(shù)學(xué)院-PaddlePaddle 深度學(xué)習(xí)實(shí)戰(zhàn)課程
看完實(shí)戰(zhàn)課程的前三個(gè)視頻,覺得不錯(cuò)敛惊,同時(shí)官方只提供Docker的安裝模式渊鞋,所以研究了一下,有了這篇源碼方式安裝的方式瞧挤。
看【PaddlePaddle 深度學(xué)習(xí)實(shí)戰(zhàn)課程】的話推薦用谷歌瀏覽器篓像,因?yàn)榫W(wǎng)址兼容性問(wèn)題,其他瀏覽器可能不能全屏不能播放聲音皿伺。

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

  • PaddlePaddle/book:這是離線教程盒粮,試過(guò)自己動(dòng)手下載鸵鸥,缺少了jupyter notebook源文件(.ipynb),只有生成的文件丹皱,所以notebook的交互文件沒(méi)了妒穴,下載docker版本的話,全部文件都健在摊崭。

  • PaddlePaddle/Paddle:這是源碼讼油,下載的時(shí)候記得用git clone,不要直接download zip壓縮文件呢簸,因?yàn)樵跐M足依賴的時(shí)候矮台,編譯時(shí)需要從git中獲取版本號(hào)。

從我docker方式安裝的時(shí)候發(fā)現(xiàn)運(yùn)行paddle的環(huán)境是一個(gè)叫moby的linux發(fā)行版根时,接著也了解到:


圖片來(lái)自:如何評(píng)價(jià)百度剛剛開源的 Paddle 平臺(tái)瘦赫?
從表格來(lái)看,上手難度中等蛤迎,并且很多中文文檔确虱,還有視頻教程,以前試過(guò)入坑tensorflow替裆,額校辩,我沒(méi)去學(xué)窘问,坑還沒(méi)入,看了看視頻教程標(biāo)題宜咒,有我想要的東西惠赫,就用它了,愉快的決定了荧呐。

走過(guò)一遍源碼安裝之后汉形,我想說(shuō)非常非常費(fèi)時(shí),主要是各種墻(天朝就是強(qiáng)倍阐,等得我天荒地老)概疆,其實(shí)現(xiàn)成 的教程就在paddle項(xiàng)目中,里面有個(gè)dockerfile



雖然這是給docker里面的moby的安裝paddle的安裝腳本峰搪,但是同是linux岔冀,也就可以用了

注意一點(diǎn)是內(nèi)核版本不要太高,我在Deepin15.4.1(內(nèi)核版本4.9)下概耻,在make源碼的時(shí)候報(bào)錯(cuò)了(即報(bào)error警告使套,不能繼續(xù)編譯了),最后轉(zhuǎn)到ubuntu下試了試才成功了鞠柄。

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

1侦高、系統(tǒng)環(huán)境

系統(tǒng):ubuntu16.04.2LTS
python版本:2.7
paddle版本:v0.10.0

2、滿足環(huán)境

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

  • gcc/clang -------------編譯的
  • nvcc -------------cuda的厌杜,沒(méi)有用到GPU可以不用安裝
  • Python
  • sphinx
  • woboq -------------指的是woboq下的woboq_codebrowser
  • sshd -------------按照文檔來(lái)理解奉呛,因該是ssh訪問(wèn)docker用的

下面內(nèi)容均來(lái)自源碼中的dockerfile
以下操作均在root用戶下進(jìn)行

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包管理器來(lái)安裝python環(huán)境,openssh遠(yuǎn)程用夯尽,python-numpy一些科學(xué)計(jì)算的庫(kù)瞧壮,clang-3.8 llvm-3.8 libclang-3.8-dev這些是golang的編譯工具,因?yàn)樵创a中有一個(gè)go文件夾放置go語(yǔ)言的源代碼匙握。沒(méi)有g(shù)o的編譯器咆槽,我就試過(guò)報(bào)錯(cuò),不過(guò)那是在我圈纺,還沒(méi)發(fā)現(xiàn)dockerfile之前的事秦忿。

2.2安裝Go

wget -O go.tgz https://storage.googleapis.com/golang/go1.8.1.linux-amd64.tar.gz

tar -C /usr/local -xzf go.tgz

mkdir /root/gopath
mkdir /root/gopath/bin
mkdir /root/gopath/src

在/etc/profile中,添加環(huán)境變量:

export GOROOT=/usr/local/go
export GOPATH=/root/gopath
PATH=${PATH}:${GOROOT}/bin:${GOPATH}/bin

上面是安裝go和配置go的環(huán)境變量

2.3安裝glide

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

↑安裝glide蛾娶。實(shí)際上很慢小渊,我直接從源倉(cāng)庫(kù)安裝:

apt-get install libglide3

2.4執(zhí)行一些命令

git config --global credential.helper store

↑這句是自動(dòng)保存git用戶名和密碼的命令

localedef -i en_US -f UTF-8 en_US.UTF-8
apt-get install -y libssl-dev libffi-dev
pip 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沒(méi)有這個(gè)是編譯不通過(guò)的酬屉,還有一些jupyter notebook的東西

2.3安裝woboq_codebrowser到/woboq

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

這里的woboq是在根目錄下的目錄,因?yàn)?開頭的路徑。

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完一般是用命令使用了谬擦,但是還是報(bào)錯(cuò)了切距,我們從截圖中可以看到有一些.whl結(jié)尾的文件,這是pip包管理器的東西惨远,我們還沒(méi)安裝這些包谜悟,所以安裝完就好了,錯(cuò)誤的時(shí)候我沒(méi)截圖北秽,所以將就文字描述吧葡幸。

6、pip安裝paddle生成的python包

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

這里多加了一個(gè)添加源的參數(shù)選項(xiàng)而已贺氓。
其實(shí)這句命令是有跡可尋的:



在dockerfile結(jié)尾知道了這個(gè)文件路徑蔚叨,找到這個(gè)文件,打開:



看到一下安裝的命令辙培,并且和報(bào)錯(cuò)相吻合蔑水,運(yùn)行這個(gè)明明果然,好了扬蕊。

7搀别、paddle version

直接運(yùn)行paddle version,查看信息和一些功能的開關(guān)情況:

paddle version


環(huán)境安裝完畢尾抑!

8歇父、測(cè)試

在普通用戶下:

jupyter notebook


在前面安裝軟件的過(guò)程中,我們已經(jīng)了jupyter notebook 直接輸入命令蛮穿,瀏覽器就會(huì)彈出窗口,之后創(chuàng)建python的文件毁渗,運(yùn)行

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


import paddle.v2 as paddle
import paddle.v2.dataset.uci_housing as uci_housing


def 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()


教程結(jié)束践磅,最后嘮叨一下,除非很有空灸异,不然正的很慢府适,建議用docker,我再家里有個(gè)臺(tái)式本來(lái)是下載docker的結(jié)果不支持虛擬化技術(shù)吧肺樟,我才這么折騰檐春,docker這個(gè)方式也是不錯(cuò)的,起碼不用浪費(fèi)那么多時(shí)間么伯,反復(fù)看多幾遍如果不會(huì)疟暖,PaddlePaddle的Docker容器使用方式,里面已經(jīng)教了已經(jīng)集成好的鏡像的下載步驟和鏡像搭建步驟,其實(shí)這篇東西就是從里面自動(dòng)搭建鏡像的腳本中手工搞一遍而已俐巴。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末骨望,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子欣舵,更是在濱河造成了極大的恐慌擎鸠,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,839評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件缘圈,死亡現(xiàn)場(chǎng)離奇詭異劣光,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)糟把,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門绢涡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人糊饱,你說(shuō)我怎么就攤上這事垂寥。” “怎么了另锋?”我有些...
    開封第一講書人閱讀 153,116評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵滞项,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我夭坪,道長(zhǎng)文判,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,371評(píng)論 1 279
  • 正文 為了忘掉前任室梅,我火速辦了婚禮戏仓,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘亡鼠。我一直安慰自己赏殃,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評(píng)論 5 374
  • 文/花漫 我一把揭開白布间涵。 她就那樣靜靜地躺著仁热,像睡著了一般。 火紅的嫁衣襯著肌膚如雪勾哩。 梳的紋絲不亂的頭發(fā)上抗蠢,一...
    開封第一講書人閱讀 49,111評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音思劳,去河邊找鬼迅矛。 笑死,一個(gè)胖子當(dāng)著我的面吹牛潜叛,可吹牛的內(nèi)容都是我干的秽褒。 我是一名探鬼主播壶硅,決...
    沈念sama閱讀 38,416評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼震嫉!你這毒婦竟也來(lái)了森瘪?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,053評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤票堵,失蹤者是張志新(化名)和其女友劉穎扼睬,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體悴势,經(jīng)...
    沈念sama閱讀 43,558評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡窗宇,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了特纤。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片军俊。...
    茶點(diǎn)故事閱讀 38,117評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖捧存,靈堂內(nèi)的尸體忽然破棺而出粪躬,到底是詐尸還是另有隱情,我是刑警寧澤昔穴,帶...
    沈念sama閱讀 33,756評(píng)論 4 324
  • 正文 年R本政府宣布镰官,位于F島的核電站,受9級(jí)特大地震影響吗货,放射性物質(zhì)發(fā)生泄漏泳唠。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評(píng)論 3 307
  • 文/蒙蒙 一宙搬、第九天 我趴在偏房一處隱蔽的房頂上張望笨腥。 院中可真熱鬧,春花似錦勇垛、人聲如沸脖母。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)谆级。三九已至,卻和暖如春崭放,著一層夾襖步出監(jiān)牢的瞬間哨苛,已是汗流浹背鸽凶。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工币砂, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人玻侥。 一個(gè)月前我還...
    沈念sama閱讀 45,578評(píng)論 2 355
  • 正文 我出身青樓决摧,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子掌桩,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • Docker — 云時(shí)代的程序分發(fā)方式 要說(shuō)最近一年云計(jì)算業(yè)界有什么大事件边锁?Google Compute Engi...
    ahohoho閱讀 15,508評(píng)論 15 147
  • 周一早上 前百度 的leader 問(wèn)我 周日發(fā)在群里的 說(shuō)什么在測(cè)試機(jī)安裝好了 paddle 是什么,我說(shuō)就是...
    Helen_Cat閱讀 1,212評(píng)論 0 1
  • 五波岛、Docker 端口映射 無(wú)論如何茅坛,這些 ip 是基于本地系統(tǒng)的并且容器的端口非本地主機(jī)是訪問(wèn)不到的。此外则拷,除了...
    R_X閱讀 1,738評(píng)論 0 7
  • 很久以前煌茬,弗洛伊德發(fā)現(xiàn)我們有種強(qiáng)迫的驅(qū)動(dòng)力斥铺,會(huì)在我們的重要關(guān)系中,重演童年的關(guān)系模式坛善,尤其是和父母的關(guān)系晾蜘。他稱之為...
    陽(yáng)光下的稻草人0閱讀 549評(píng)論 2 2
  • 如果我明天要去廣州,我肯定能去到眠屎。沒(méi)有汽車剔交,我就騎車去;不能騎車组力,我就走路去省容;遇見河流,我就游過(guò)去燎字。 --碧桂園楊國(guó)強(qiáng)
    Owen連接一切閱讀 287評(píng)論 0 0