前言: 遠(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,加入終端輸出摆尝,
則說明您的系統(tǒng)未安裝git温艇。在終端下輸入sudo apt install git 即可安裝,如下圖所示。
在確定成功安裝git工具后就可以開始安裝Torch7啦!
第一步:
獲取安裝LuaJIT(C語言編寫的Lua的解釋器)和Torch所必需的依賴包堕汞。代碼如下:git clone https://github.com/torch/distro.git ~/torch --recursive 如下圖所示勺爱。
第二步:
由于默認(rèn)將依賴包下載在當(dāng)前路徑下的torch文件下,進(jìn)入torch文件夾,打開并執(zhí)行install-deps中的命令(這個命令執(zhí)行時間可能有點(diǎn)長,別著急哈)。代碼如下:
第三步:
執(zhí)行install.sh文件,如下圖所示讯检。
終端提示:
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變量中:
第五步:
檢測安裝是否成功。在終端輸入th命令,若出現(xiàn)下圖,表明安裝成功人灼。
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-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处硬,如圖,
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 版本:
1.4.2 驗(yàn)證自己的Linux版本是否支持 CUDA
$ uname -m && cat /etc/*release
1.4.3 安裝驅(qū)動(apt方式)
$ sudo add-apt-repository ppa:graphics-drivers/ppa
$ sudo apt-get update
# 尋找合適的驅(qū)動版本
$ ubuntu-drivers devices
$ sudo apt-get install nvidia-390
# 安裝完重啟
$ sudo reboot
# 查看驅(qū)動安裝狀態(tài)
$ sudo nvidia-smi
$ sudo nvidia-settings
1.4.4 安裝cuda8.0
在官網(wǎng)下載cuda8.0 run文件拇派,https://developer.nvidia.com荷辕,網(wǎng)站需要注冊才可以下載;
# 關(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
按照如下方式安裝:
# 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
將下載的包解壓,按照如圖方式添加:
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