ubuntu 16.04 torch7 + cuda/cudnn 環(huán)境配置

前言: 遠(yuǎn)離高版本民逼,時間比經(jīng)驗(yàn)更寶貴咧叭!

本文安裝軟件環(huán)境:ubuntu 16.04 + cuda 8.0

寫在前面:之前因?yàn)殡娔X系統(tǒng)是ubuntu 16.10的緣故斑鼻,經(jīng)歷了萬般波折到最近也算是把環(huán)境配好了氨淌,但是過程中的痛苦自是不再想提及屈雄,由于系統(tǒng)版本的升級導(dǎo)致了一些依賴庫版本的升級村视,而配置torch所需要的版本并不能與之兼容,所以有些庫會強(qiáng)制進(jìn)行降版本酒奶,我這里記錄了一些蚁孔,基于此,強(qiáng)烈不建議使用高版本惋嚎。

bash install-deps

libjpeg-dev
liblcms2-dev
libwmf-dev
libx11-dev
libxext-dev
libxml2-dev
libfreetype6-dev
libtiff-dev libz-dev
libpng-dev
libbz2-dev
libltdl-dev

libltdl-dev -> libltdl7=2.4.6-0.1 ->
libbz2-dev -> libbz2-1.0=1.0.6-8 -> 
libpng-dev -> zlib1g-dev -> zlib1g=1:1.2.8.dfsg-2ubuntu4.1
libtiff-dev -> libjpeg-dev -> libjpeg8-dev -> libjpeg-turbo8-dev -> libjpeg-turbo8=1.4.2-0ubuntu3.1 
-> libtiff5=4.0.6-1ubuntu0.4 -> liblzma5=5.1.1alpha+20120614-2ubuntu2 ->liblzma-dev 
libfreetype6-dev -> libfreetype6=2.6.1-0.1ubuntu2.3
libxml2-dev -> libxml2=2.9.3+dfsg1-1ubuntu0.5
libxext-dev -> libx11-dev -> libx11-6 libx11-doc
libwmf-dev -> libwmf0.2-7
如上類推杠氢,后面帶版本號,依次添加依賴


報(bào)沒有 <readline>的錯
sudo apt install libreadline-dev -> libreadline6-dev=6.3-8ubuntu2 -> libtinfo-dev
-> ruby-interpreter -> 預(yù)依賴 awk 使用 aptitude

1.1 安裝torch

Torch是一個基于Lua語言的深度學(xué)習(xí)框架另伍,官網(wǎng)地址https://github.com/torch鼻百,安裝torch7官方有文檔,按照文檔可完成http://torch.ch/docs/getting-started.html#_

安裝之前首先確定你的Ubuntu下以安裝git工具,通過Ctrl+Alt+T打開終端,在終端下輸入git,加入終端輸出摆尝,


image_1cl93ve3q4vp1kjp1kfaq3j13992m.png-39kB
image_1cl93ve3q4vp1kjp1kfaq3j13992m.png-39kB

則說明您的系統(tǒng)未安裝git温艇。在終端下輸入sudo apt install git 即可安裝,如下圖所示。


image_1cl940bnjeh71m4h2lr1ufe1gd433.png-692.1kB
image_1cl940bnjeh71m4h2lr1ufe1gd433.png-692.1kB

在確定成功安裝git工具后就可以開始安裝Torch7啦!

第一步:
獲取安裝LuaJIT(C語言編寫的Lua的解釋器)和Torch所必需的依賴包堕汞。代碼如下:git clone https://github.com/torch/distro.git ~/torch --recursive 如下圖所示勺爱。

image_1cl9g20r61s5ar0jamd1lhv16q63g.png-1093.6kB
image_1cl9g20r61s5ar0jamd1lhv16q63g.png-1093.6kB

第二步:
由于默認(rèn)將依賴包下載在當(dāng)前路徑下的torch文件下,進(jìn)入torch文件夾,打開并執(zhí)行install-deps中的命令(這個命令執(zhí)行時間可能有點(diǎn)長,別著急哈)。代碼如下:

image_1cl9gdt5kjtr12hj1c26jk71m403t.png-971.8kB
image_1cl9gdt5kjtr12hj1c26jk71m403t.png-971.8kB

第三步:
執(zhí)行install.sh文件,如下圖所示讯检。


image_1cl9h5hh4epmf2719pp1hs0bbf4a.png-976.9kB
image_1cl9h5hh4epmf2719pp1hs0bbf4a.png-976.9kB
image_1cl9h6kct1hjvlvmhifbkji424n.png-963.8kB
image_1cl9h6kct1hjvlvmhifbkji424n.png-963.8kB

終端提示:
Do you want to automatically prepend the Torch install location to PATH and LD_LIBRARY_PATH in your /home/guodongwei/.bashrc? (yes/no)
輸入:yes 如上圖所示琐鲁。

第四步:
將路徑手動添加到PATH變量中:


image_1cl9h83f03c71gpp1gl31c1cdn254.png-19.9kB
image_1cl9h83f03c71gpp1gl31c1cdn254.png-19.9kB

image_1cl9h8kj21k317vv1ge91b6gllg5h.png-25.7kB
image_1cl9h8kj21k317vv1ge91b6gllg5h.png-25.7kB

第五步:
檢測安裝是否成功。在終端輸入th命令,若出現(xiàn)下圖,表明安裝成功人灼。


image_1cl9h9g07ltb1abuo2115nsa9g5u.png-150.2kB
image_1cl9h9g07ltb1abuo2115nsa9g5u.png-150.2kB

1.2 安裝hdf5

Hierarchical Data Format(HDF)是一種針對大量數(shù)據(jù)進(jìn)行組織和存儲的文件格式围段。經(jīng)歷了20多年的發(fā)展,HDF格式的最新版本是HDF5挡毅,它包含了數(shù)據(jù)模型蒜撮,庫,和文件格式標(biāo)準(zhǔn)。以其便捷有效段磨,移植性強(qiáng)取逾,靈活可擴(kuò)展的特點(diǎn)受到了廣泛的關(guān)注和應(yīng)用。

很多大型機(jī)構(gòu)的數(shù)據(jù)存儲格式都采用了HDF5苹支,比如NASA的地球觀測系統(tǒng)砾隅,MATLAB的.m文件,流體細(xì)算軟件CDF债蜜,都將HDF5作為標(biāo)準(zhǔn)數(shù)據(jù)格式∏绻。現(xiàn)在HDF5還支持了大數(shù)據(jù)技術(shù)和NoSQL技術(shù),并廣泛用于科研寻定,金融儒洛,以及其他科學(xué)和工程領(lǐng)域。

HDF5在技術(shù)上提供了豐富的接口狼速,包含C琅锻,C++,F(xiàn)ortran, Python, Java等向胡,能夠在不同的語言間完美兼容恼蓬。

hdf5的文件格式
hdf5的文件格式

打開hdf5官方資源地址hdf5,下載源碼如hdf5-1.8.18.tar.gz形式的文件:

$ tar -xzf hdf5-1.8.18.tar.gz
$ cd hdf5-1.8.18
$ ./configure --prefix=/usr/local/hdf5  #安裝路徑
$ make
$ make check # run test suite
$ install
$ make check-install # verify installation

這里我們介紹一個hdf5可視化工具僵芹,它可以用來查看和編輯HDF文件:HDFView处硬,如圖,


image_1cl9iei8h1mtd44o1rdv1b8f1vi76o.png-51kB
image_1cl9iei8h1mtd44o1rdv1b8f1vi76o.png-51kB

1.3 安裝torch-hdf5

在github上https://github.com/deepmind/torch-hdf5/blob/master/doc/usage.md

$ sudo apt-get install libhdf5-serial-dev hdf5-tools
$ git clone https://github.com/deepmind/torch-hdf5
$ cd torch-hdf5
$ luarocks make hdf5-0-0.rockspec LIBHDF5_LIBDIR="/usr/lib/x86_64-linux-gnu/"

1.4 安裝cuda8.0

1.4.1 檢查計(jì)算機(jī)是否具備CUDA安裝條件

$ lspci | grep -i nvidia

顯示出GPU 版本:


image_1clahc5v3kon12co1hhbl621bf075.png-14.8kB
image_1clahc5v3kon12co1hhbl621bf075.png-14.8kB

1.4.2 驗(yàn)證自己的Linux版本是否支持 CUDA

$ uname -m && cat /etc/*release
image_1clahejs01sriaaf177c65neh7i.png-58.4kB
image_1clahejs01sriaaf177c65neh7i.png-58.4kB

1.4.3 安裝驅(qū)動(apt方式)

$ sudo add-apt-repository ppa:graphics-drivers/ppa
$ sudo apt-get update
# 尋找合適的驅(qū)動版本
$ ubuntu-drivers devices
image_1clahi0n51rveuffhp21vh7e617v.png-41.8kB
image_1clahi0n51rveuffhp21vh7e617v.png-41.8kB
$ sudo apt-get install nvidia-390
# 安裝完重啟
$ sudo reboot
# 查看驅(qū)動安裝狀態(tài)
$ sudo nvidia-smi
$ sudo nvidia-settings
image_1clahkk101r716vo78713fbh7m8s.png-60.9kB
image_1clahkk101r716vo78713fbh7m8s.png-60.9kB

image_1clahl05r16u7127v1gjdvk5dog99.png-157.4kB
image_1clahl05r16u7127v1gjdvk5dog99.png-157.4kB

1.4.4 安裝cuda8.0

在官網(wǎng)下載cuda8.0 run文件拇派,https://developer.nvidia.com荷辕,網(wǎng)站需要注冊才可以下載;

image_1clahpflaevi1sp41a331bre18sn9m.png-58.5kB
image_1clahpflaevi1sp41a331bre18sn9m.png-58.5kB
# 關(guān)閉圖形化界面
$ sudo service lightdm stop
# 安裝cuda8.0
$ sudo sh cuda_8.0.44_linux.run

單擊回車攀痊,直到提示“是否為NVIDIA安裝驅(qū)動桐腌?”
選擇否,因?yàn)橐呀?jīng)安裝好驅(qū)動程序苟径,其他都是默認(rèn)案站。

安裝完成后可能還會需要添加這些庫:

$ sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
# 完成后重啟
$ sudo service lightdm start

最后需要設(shè)置環(huán)境變量:

$ sudo vim /etc/profile

在文件末尾添加以下兩行:

$ export PATH=/usr/local/cuda-8.0/bin:$PATH
$ export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH

重啟使環(huán)境變量生效!

1.5 安裝cudnn棘街,cudnn.torch

1.5.1 安裝cudnn7

下載cudnn7所需要的包蟆盐,https://developer.nvidia.com/rdp/cudnn-download

image_1clai9890c7iq27133716nh1pkra3.png-18.2kB
image_1clai9890c7iq27133716nh1pkra3.png-18.2kB

按照如下方式安裝:

# Navigate to your <cudnnpath> directory containing cuDNN Debian file.
# Install the runtime library, for example:
$ sudo dpkg -i libcudnn7_7.0.3.11-1+cuda9.0_amd64.deb
# Install the developer library, for example:
$ sudo dpkg -i libcudnn7-dev_7.0.3.11-1+cuda9.0_amd64.deb
# Install the code samples and the cuDNN Library User Guide, for example:
$ sudo dpkg -i libcudnn7-doc_7.0.3.11-1+cuda9.0_amd64.deb

安裝完成后需要手動添加一下路徑:

$ sudo cp /usr/local/cuda-8.0/lib64/libcudart.so.8.0 /usr/local/lib/libcudart.so.8.0 && sudo ldconfig
$ sudo cp /usr/local/cuda-8.0/lib64/libcublas.so.8.0 /usr/local/lib/libcublas.so.8.0 && sudo ldconfig
$ sudo cp /usr/local/cuda-8.0/lib64/libcurand.so.8.0 /usr/local/lib/libcurand.so.8.0 && sudo ldconfig

1.5.2 torch.cudnn

最后由于版本兼容性,我們還需要修改torch.cudnn的版本:

git clone https://github.com/soumith/cudnn.torch.git -b R7 && cd cudnn.torch && luarocks make cudnn-scm-1.rockspec

我們的torch就可以使用cudnn了遭殉!

1.6 安裝lua-cjson

下載lua CJSON石挂,https://www.kyne.com.au/%7Emark/software/lua-cjson-manual.html

將下載的包解壓,按照如圖方式添加:

image_1clainn2c1vd31oonqgn7isk5nb0.png-23.8kB
image_1clainn2c1vd31oonqgn7isk5nb0.png-23.8kB

1.7 安裝loadcaffe

添加loadcaffe庫险污,https://github.com/szagoruyko/loadcaffe痹愚,如下所示:

# Install torch first. There is no Caffe dependency, only protobuf has to be installed. In Ubuntu do:
$ sudo apt-get install libprotobuf-dev protobuf-compiler
$ luarocks install loadcaffe
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末富岳,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子拯腮,更是在濱河造成了極大的恐慌窖式,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件动壤,死亡現(xiàn)場離奇詭異萝喘,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)琼懊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進(jìn)店門阁簸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人哼丈,你說我怎么就攤上這事启妹。” “怎么了削祈?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵翅溺,是天一觀的道長。 經(jīng)常有香客問我髓抑,道長,這世上最難降的妖魔是什么优幸? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任吨拍,我火速辦了婚禮,結(jié)果婚禮上网杆,老公的妹妹穿的比我還像新娘羹饰。我一直安慰自己,他們只是感情好碳却,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布队秩。 她就那樣靜靜地躺著,像睡著了一般昼浦。 火紅的嫁衣襯著肌膚如雪馍资。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天关噪,我揣著相機(jī)與錄音鸟蟹,去河邊找鬼。 笑死使兔,一個胖子當(dāng)著我的面吹牛建钥,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播虐沥,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼熊经,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起镐依,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤悉盆,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后馋吗,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體焕盟,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年宏粤,在試婚紗的時候發(fā)現(xiàn)自己被綠了脚翘。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡绍哎,死狀恐怖来农,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情崇堰,我是刑警寧澤沃于,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站海诲,受9級特大地震影響繁莹,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜特幔,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一咨演、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蚯斯,春花似錦薄风、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至横辆,卻和暖如春撇他,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背龄糊。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工逆粹, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人炫惩。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓僻弹,卻偏偏與公主長得像,于是被迫代替她去往敵國和親他嚷。 傳聞我的和親對象是個殘疾皇子蹋绽,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,440評論 2 348

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