個人深度學(xué)習(xí)環(huán)境搭建(五):深度學(xué)習(xí)框架torch/caffe/tensorflow/mxnet安裝

<u>版權(quán)所有玛追,轉(zhuǎn)載請注明出處</u>


其它相關(guān)文章:


** <big>未完待續(xù)……</big> **


說明:以下都是針對Ubuntu 16.04系統(tǒng)下的安裝伶丐。

一. opencv 3.1 安裝

官方網(wǎng)站關(guān)于opencv 3.1 的安裝說明偏少赊锚,官網(wǎng)上的教程還是2.3.4的状蜗。我們這里的安裝主要參考了以下網(wǎng)站:
Ubuntu 16.04 or 15.10 OpenCV 3.1 Installation Guide
Caffe + Ubuntu 15.04 + CUDA 7.5 新手安裝配置指南
ubuntu 16.04 編譯opencv3.1牲迫,opencv多版本切換
安裝過程主要包括依賴關(guān)系的安裝蚀狰、編譯手销、安裝等三個過程。

1. 依賴關(guān)系

主要安裝以下內(nèi)容:

sudo apt-get install build-essential cmake git
sudo apt-get install ffmpeg libopencv-dev libgtk-3-dev python-numpy python3-numpy libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff5-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxine2-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libv4l-dev libtbb-dev qtbase5-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils unzip

2. 編譯

從官網(wǎng)下載源代碼访诱,解壓縮并進入文件夾披坏。依次執(zhí)行以下指令。

mkdir build
cd build/
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D WITH_V4L=ON -D WITH_QT=ON -D WITH_OPENGL=ON ..
make

其中盐数,在cmake時可能會遇到以下問題——

(1)問題一:安裝過程中報“CMake Error at /usr/lib/x86_64-linux-gnu/cmake/Qt5Gui/Qt5GuiConfig.cmake:27 (message)”棒拂,具體如下:

-- Found ZLIB: /home/machao/anaconda3/lib/libz.so (found version "1.2.8") 
-- Found OpenEXR: /usr/lib/x86_64-linux-gnu/libIlmImf.so
CMake Error at /usr/lib/x86_64-linux-gnu/cmake/Qt5Gui/Qt5GuiConfig.cmake:27 (message):
  The imported target "Qt5::Gui" references the file

     "/usr/lib/x86_64-linux-gnu/libEGL.so"

  but this file does not exist.  Possible reasons include:

  * The file was deleted, renamed, or moved to another location.

  * An install or uninstall procedure did not complete successfully.

  * The installation package was faulty and contained

     "/usr/lib/x86_64-linux-gnu/cmake/Qt5Gui/Qt5GuiConfigExtras.cmake"

  but not all the files it references.

Call Stack (most recent call first):
  /usr/lib/x86_64-linux-gnu/cmake/Qt5Gui/Qt5GuiConfigExtras.cmake:50 (_qt5_Gui_check_file_exists)
  /usr/lib/x86_64-linux-gnu/cmake/Qt5Gui/Qt5GuiConfigExtras.cmake:72 (_qt5gui_find_extra_libs)
  /usr/lib/x86_64-linux-gnu/cmake/Qt5Gui/Qt5GuiConfig.cmake:158 (include)
  cmake/OpenCVFindLibsGUI.cmake:19 (find_package)
  CMakeLists.txt:535 (include)

解決方法:可能是鏈接錯誤吧,參考here解決了問題玫氢。指令如下:

sudo rm /usr/lib/x86_64-linux-gnu/libEGL.so; sudo ln /usr/lib/x86_64-linux-gnu/libEGL.so.1 /usr/lib/x86_64-linux-gnu/libEGL.so

(2)問題二:編譯過程中在-- ICV: Downloading ippicv_linux_20151201.tgz...位置卡住很久帚屉,最后報錯CMake Error at 3rdparty/ippicv/downloader.cmake:73 (file): file DOWNLOAD HASH mismatch
解決方法:這個應(yīng)該是由于下載包失敗導(dǎo)致的漾峡」サ可以手動下載原始文件并將壓縮包放置在路徑/home/machao/opencv-3.1.0/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e下。具體問題可以參考官方github上的這個issue(incorrect hash in cmake ippicv when installing #5973).

3. 安裝

編譯成功后生逸,執(zhí)行以下指令進行安裝

sudo make install
sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
sudo ldconfig
sudo apt-get update

歐新宇寫了個安裝腳本牢屋,包含了上述所有過程,可以方便地進行安裝槽袄,大家可以參考下烙无。百度云盤鏈接: http://pan.baidu.com/s/1qX1uFHa 密碼:wysa

二. Torch 安裝

Torch的安裝非常簡單,按照官方說明進行就OK了遍尺。

# in a terminal, run the commands WITHOUT sudo
git clone https://github.com/torch/distro.git ~/torch --recursive
cd ~/torch; bash install-deps;
./install.sh

安裝完成后添加PATH變量

# On Linux with bash
source ~/.bashrc

安裝完后建議安裝iTorch包截酷,可以方便地進行可視化編程。安裝方法如下:

sudo apt-get install libzmq3-dev libssl-dev python-zmq
git clone https://github.com/facebook/iTorch.git
cd iTorch
luarocks make

啟動只需要在終端輸入ipython notebook即可乾戏。
官方的其它一些教程或者安裝包可以查看這個Cheatsheet.

三. caffe安裝

caffe是由BVLC開發(fā)的一個深度學(xué)習(xí)框架迂苛,主要由賈揚清在UC Berkeley攻讀PhD期間完成(大神,膜拜9脑瘛)三幻。
安裝教程主要參考官網(wǎng)上的安裝教程以及Github上針對Ubuntu15.04和16.04的安裝教程.

1. 依賴關(guān)系

tar zxvf parallel_studio_xe_2016_update3.tar.gz 
cd parallel_studio_xe_2016_update3
sudo sh install_GUI.sh 或者 sudo  install.sh  #前者是圖形安裝界面

安裝過程中會要求輸入序列號舌仍,這個key在注冊后官方會發(fā)郵件到注冊郵箱里妒貌,自己去查看。安裝完成后還需要進行一些環(huán)境的配置:
在/etc/ld.so.conf.d/下新建文件intel_mkl.conf

sudo vim  /etc/ld.so.conf.d/intel_mkl.conf

然后在文件中添加以下代碼

/opt/intel/lib/intel64
/opt/intel/mkl/lib/intel64

添加完內(nèi)容后使用下面內(nèi)容使其生效:

sudo ldconfig

另外铸豁,如果選擇安裝ATLAS灌曙,在終端輸入sudo apt-get install libatlas-base-dev即可。

  • Boost
  • opencv, 這個的安裝在前面已經(jīng)講了节芥,不再贅述在刺。
  • 其它依賴項
sudo apt-get install -y build-essential cmake git pkg-config
sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler   libatlas-base-dev libgflags-dev libgoogle-glog-dev liblmdb-dev
sudo apt-get install --no-install-recommends libboost-all-dev

如果要使用Python接口的話需要裝以下依賴:

sudo apt-get install  the python-dev
sudo apt-get install -y python-pip
sudo apt-get install -y python-devsudo apt-get install -y python-numpy python-scipy # (Python 2.7 development files)
sudo apt-get install -y python3-devsudo apt-get install -y python3-numpy python3-scipy # (Python 3.5 development files)

2. 安裝配置與編譯

<big>(1)caffe下載</big>
首先從官方下載caffe源包,解壓到某個位置头镊,如~/下蚣驼。
<big>(2)Makefile.config文件配置</big>
首先需要在官方提供的Makefile.config文件的基礎(chǔ)上進行一些配置工作。先拷貝一份原始Makefile.config文件

cd ~/caffe-master
cp Makefile.config.example Makefile.config

可能需要修改的內(nèi)容主要有:

  • OPENCV 3.0
OPENCV_VERSION := 3
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial /usr/local/share/OpenCV/3rdparty/lib/
  • CPU
    如果只使用CPU(不用GPU)的話相艇,設(shè)置如下(取消注釋):
CPU_ONLY := 1
  • CUDNN
    啟用CUDNN颖杏,設(shè)置如下(取消注釋):
USE_CUDNN := 1

注意要注釋掉CPU模式#CPU_ONLY := 1。如果CUDA的路徑和實際不一致(CUDA_DIR := /usr/local/cuda坛芽,CUDA 8.0創(chuàng)建的文件夾名為cuda-8.0)留储,需要做一定修改或者創(chuàng)建軟鏈接。

  • MKL
    使用微軟的Intel Parallel Studio XE 2016咙轩,設(shè)置如下:
BLAS := mkl

實際上获讳,這里根據(jù)你采用的BLAS來修改。

  • 一些庫和引用文件
    python和hdf5的引用文件和庫臭墨。
PYTHON_INCLUDE := /usr/include/python2.7 /usr/lib/python2.7/dist-packages/numpy/core/include
WITH_PYTHON_LAYER := 1
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial

此處需要根據(jù)采用的python版本來修改赔嚎,默認是python 2.7膘盖,也可以修改為python 3或者Anaconda Python胧弛。同時注意一定要添加hdf5的引用文件和庫路徑,我第一次編譯caffe失敗就是這個地方?jīng)]弄好侠畔。
如果采用Anaconda Python结缚,可以設(shè)置如下(取消注釋):

 ANACONDA_HOME := $(HOME)/anaconda3
 PYTHON_INCLUDE := $(ANACONDA_HOME)/include \
        $(ANACONDA_HOME)/include/python3.5m \
        $(ANACONDA_HOME)/lib/python3.5/site-packages/numpy/core/include \
 PYTHON_LIB := $(ANACONDA_HOME)/lib

根據(jù)官方的安裝說明還要執(zhí)行一些指令進行hdf5的配置:

find . -type f -exec sed -i -e 's^"hdf5.h"^"hdf5/serial/hdf5.h"^g' -e 's^"hdf5_hl.h"^"hdf5/serial/hdf5_hl.h"^g' '{}' \;
cd /usr/lib/x86_64-linux-gnu
sudo ln -s libhdf5_serial.so.10.1.0 libhdf5.so
sudo ln -s libhdf5_serial_hl.so.10.0.2 libhdf5_hl.so 

官方說這對于Ubuntu 16.04是必須的。上面的libhdf5的版本號需要根據(jù)實際來修改下软棺。

  • MATLAB
    取消對MATLAB的注釋即可红竭。
MATLAB_DIR := /usr/local/MATLAB/R2016a

<big>(3)其它配置</big>
如果需要python接口,需要做如下操作(我也不知道為什么……):

cd ~/caffe-master/python
for req in $(cat requirements.txt); do pip install $req; done

3. 編譯

  • 執(zhí)行以下命令進行caffe的編譯喘落。
cd ~/caffe-master
make all -j $(($(nproc)+1))
make test -j $(($(nproc)+1))
make runtest -j $(($(nproc)+1))

這里的-j $(($(nproc) + 1))表示調(diào)用CPU可用的核進行并行編譯茵宪,可以加快便已速度。
編譯過程中遇到的問題:
(1)CUDA報錯
報錯記錄如下瘦棋。

NVCC src/caffe/util/math_functions.cu
NVCC src/caffe/util/im2col.cu
make: /usr/local/cuda/bin/nvcc: Command not found
make: /usr/local/cuda/bin/nvcc: Command not found
Makefile:588: recipe for target '.build_release/cuda/src/caffe/util/math_functions.o' failed
NVCC src/caffe/solvers/adam_solver.cu
make: *** [.build_release/cuda/src/caffe/util/math_functions.o] Error 127
make: *** Waiting for unfinished jobs....
Makefile:588: recipe for target '.build_release/cuda/src/caffe/util/im2col.o' failed
make: *** [.build_release/cuda/src/caffe/util/im2col.o] Error 127
make: /usr/local/cuda/bin/nvcc: Command not found
Makefile:588: recipe for target '.build_release/cuda/src/caffe/solvers/adam_solver.o' failed
make: *** [.build_release/cuda/src/caffe/solvers/adam_solver.o] Error 127

解決方法:這個是CUDA沒有安裝好(主要是我之前進入不了桌面重裝過一次顯卡驅(qū)動稀火,估計把CUDA弄壞了),然后重裝了下CUDA就好了赌朋。
(2)google::protobuf相關(guān)內(nèi)容報錯
參考這篇博客凰狞,應(yīng)該是Ubuntu系統(tǒng)版本胎心篇裁,apt-get安裝的protobuf不兼容。
解決方法:下載最新的protobuf源碼進行編譯安裝赡若。
先卸載原有版本:

sudo apt-get autoremove libprotobuf-dev protobuf-compiler

然后安裝新版本达布,安裝過程可以參考官方Github上的說明。首先安裝依賴關(guān)系:

sudo apt-get install autoconf automake libtool curl make g++ unzip

然后逾冬,執(zhí)行下面命令生成配置腳本:

./autogen.sh

這里需要下載google的gmock黍聂,此處可能下載有問題,這里我已上傳到網(wǎng)盤身腻,請自行下載分冈,下載后解壓到protobuf文件下,注意將文件夾名稱改為gmock霸株。
然后雕沉,就是常見的編譯過程:

./configure
make
make check
sudo make install
sudo ldconfig

安裝完成后,還需要進行環(huán)境的配置去件,

(3)在重新安裝protobuf之后坡椒,進行caffe編譯又出現(xiàn)下面的錯誤:

make: *** No rule to make target '/usr/include/google/protobuf/stubs/common.h', needed by '.build_release/cuda/src/caffe/util/math_functions.o'.  Stop.

報錯原因:查看了下上面的報錯,并沒有找到“/usr/include/google/protobuf/stubs/common.h”這個路徑及文件尤溜。查看了官方Github上的說明文件發(fā)現(xiàn)原來protobuf默認安裝路徑是/usr/local/倔叼,而caffe編譯時卻在/usr/下查找指定文件。
解決方法:重新安裝宫莱,并修改編譯路徑為./configure --prefix=/usr丈攒,然后重新編譯安裝。
(4)編譯器gcc報錯
部分報錯內(nèi)容如下:

/usr/local/cuda/include/host_config.h:115:2: error: #error -- unsupported GNU version! gcc versions later than 5.3 are not supported!

解決方法:gcc和g++版本太低授霸。根據(jù)上面的報錯內(nèi)容巡验,找到文件host_config.h并打開,注釋掉里面的版本檢查語句:

//error -- unsupported GNU version! gcc versions later than 5.3 are not supported!  
  • 對caffe和matlab接口進行編譯
make pycaffe  -j $(($(nproc) + 1))
make matcaffe -j $(($(nproc) + 1))

參考內(nèi)容
深度學(xué)習(xí)(四十一)cuda8.0+ubuntu16.04+theano碘耳、caffe显设、tensorflow環(huán)境搭建

http://ouxinyu.github.io/Blogs/20151108001.html
http://blog.csdn.net/autocyz/article/details/51783857
http://blog.csdn.net/g0m3e/article/details/51420565
http://caffe.berkeleyvision.org/install_apt.html
http://blog.csdn.net/solomon1558/article/details/52015754
https://github.com/BVLC/caffe/wiki/Ubuntu-16.04-or-15.10-Installation-Guide

<div align = center>-END-</div>


<u>版權(quán)所有,轉(zhuǎn)載請注明出處</u>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末辛辨,一起剝皮案震驚了整個濱河市捕捂,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌斗搞,老刑警劉巖指攒,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異僻焚,居然都是意外死亡允悦,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進店門溅呢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來澡屡,“玉大人猿挚,你說我怎么就攤上這事∈火模” “怎么了绩蜻?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長室埋。 經(jīng)常有香客問我办绝,道長,這世上最難降的妖魔是什么姚淆? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任孕蝉,我火速辦了婚禮,結(jié)果婚禮上腌逢,老公的妹妹穿的比我還像新娘降淮。我一直安慰自己,他們只是感情好搏讶,可當(dāng)我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布佳鳖。 她就那樣靜靜地躺著,像睡著了一般媒惕。 火紅的嫁衣襯著肌膚如雪系吩。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天妒蔚,我揣著相機與錄音穿挨,去河邊找鬼。 笑死肴盏,一個胖子當(dāng)著我的面吹牛科盛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播叁鉴,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼土涝,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了幌墓?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤冀泻,失蹤者是張志新(化名)和其女友劉穎常侣,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體弹渔,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡胳施,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了肢专。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片舞肆。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡焦辅,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出椿胯,到底是詐尸還是另有隱情筷登,我是刑警寧澤,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布哩盲,位于F島的核電站前方,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏廉油。R本人自食惡果不足惜惠险,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望抒线。 院中可真熱鬧班巩,春花似錦、人聲如沸嘶炭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽旱物。三九已至遥缕,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間宵呛,已是汗流浹背单匣。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留宝穗,地道東北人户秤。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像逮矛,于是被迫代替她去往敵國和親鸡号。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,979評論 2 355

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