1.Ubuntu16.04配置Caffe全過程

寫在前面

最近拿到了一臺新機器生年,安裝了Ubuntu16.04蛀缝。原來在筆記本的Ubuntu16.04下配置成功過caffe(cpu only)機器matlab與python接口。
特將在新機器上配置caffe完整過程記錄如下。

0.機器配置

  • 處理器:Intel? Xeon(R) CPU E3-1231 v3 @ 3.40GHz × 8
  • 內(nèi)存:Kingston 32G
  • 顯卡:NVIDIA GeForce GTX 1070
    顯卡型號可以用這個命令查詢:
    lspci |grep VGA
    機器配置查詢參考
  • 操作系統(tǒng):Ubuntu17.04

1.Caffe下載

2.編譯前的準(zhǔn)備

本部分根據(jù)Caffe官網(wǎng)Ubuntu下安裝教程以及部分網(wǎng)絡(luò)教程進行

2.1 General dependencies

執(zhí)行此部分前最好先升級apt-get:
sudo apt-get update
然后分別執(zhí)行下面兩句:

sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
(可能執(zhí)行完這句后會再次提醒需要升級apt-get这刷,再運行一遍升級命令就好了)
sudo apt-get install --no-install-recommends libboost-all-dev

此部分安裝完成

2.2 安裝NVIDIA顯卡驅(qū)動

這部分耗費了一個下午的時間總算安裝好了婉烟。

安裝這部分的時候,先參考了《Ubuntu-安裝-cuda7.0-單顯卡-超詳細(xì)教程》這篇文章(注意暇屋,不使用該文章中的方法安裝Cuda似袁,否則報錯),按照二進制安裝包安裝的方式安裝顯卡驅(qū)動咐刨,一直報錯叔营,說kernel modules配置錯誤,錯誤報告很長所宰,最后的部分如下:

錯誤報告:
scripts/Makefile.build:294: recipe for target '/tmp/selfgz6789/NVIDIA-Linux-x86_64-375.26/kernel/nvidia-drm/nvidia-drm-fence.o' failed
make[2]: *** [/tmp/selfgz6789/NVIDIA-Linux-x86_64-375.26/kernel/nvidia-drm/nvidia-drm-fence.o] Error 1
make[2]: Target '__build' not remade because of errors.
Makefile:1524: recipe for target '_module_/tmp/selfgz6789/NVIDIA-Linux-x86_64-375.26/kernel' failed
make[1]: *** [_module_/tmp/selfgz6789/NVIDIA-Linux-x86_64-375.26/kernel] Error 2
make[1]: Target 'modules' not remade because of errors.
make[1]: Leaving directory '/usr/src/linux-headers-4.10.0-19-generic'
Makefile:81: recipe for target 'modules' failed
make: *** [modules] Error 2
ERROR: The nvidia kernel module was not created.
ERROR: Installation has failed.  Please see the file '/var/log/nvidia-installer.log' for details.  You may find suggestions on fixing installation problems in the README available on the Linux driver download page at www.nvidia.com.

后來根據(jù)這篇文章绒尊,采用apt-get方式安裝,成功仔粥,但步驟有所不同婴谱。

我的具體安裝步驟如下:
2.2.1 禁用舊的顯卡驅(qū)動
Ubuntu中自帶了適用于NVIDIA顯卡的nouveau驅(qū)動,但是與NVIDIA官方驅(qū)動相比還是有很大差距的躯泰,而且沒有官方驅(qū)動的話谭羔,也不能使用Cuda和cudnn。nouveau驅(qū)動與官方驅(qū)動沖突麦向,因此瘟裸,需要在安裝官方驅(qū)動之前禁用nouveau驅(qū)動。

之前嘗試過網(wǎng)上建議較多的添加blacklist的方法诵竭,發(fā)現(xiàn)都不能完全將nouveau驅(qū)動禁用话告。查看nouveau驅(qū)動是否完全被禁用命令如下:
lsmod | grep nouveau

于是采用另外一種方法,成功去除nouveau驅(qū)動。

執(zhí)行 lsmod | grep nouveau 命令的結(jié)果

2.2.2 apt-get方式安裝驅(qū)動

  • 在命令行輸入:
    ubuntu-drivers devices

    查看建議的驅(qū)動版本

    采用有“recommended”那一行的驅(qū)動版本卵慰。

  • 按“Ctrl+Alt+F1”沙郭,切換到tty1。注意裳朋,這里輸入密碼時不能用小鍵盤病线,用鍵盤上方的橫排數(shù)字輸入密碼(密碼中有數(shù)字的情況下)。

  • 輸入命令“sudo su”鲤嫡,切換到root模式

  • 關(guān)閉顯示器管理器送挑,命令:service lightdm stop

  • 安裝顯卡驅(qū)動,命令:apt-get install nvidia-375

  • 安裝完成暖眼,打開顯示器管理器惕耕,命令:service lightdm start

  • 登錄圖形化界面,打開Terminal罢荡,輸入cat /proc/driver/nvidia/version赡突,查看顯卡信息,如安裝成功区赵,如下所示:

  • NVIDIA顯卡驅(qū)動安裝完畢

2.3 安裝Cuda

安裝Cuda時可以退出tyy1了惭缰,回到圖形界面。安裝過程中曾經(jīng)嘗試用run方法笼才,但是不知什么原因一直失敗漱受。因此直接采用deb方式安裝Cuda。步驟如下:

  • 安裝依賴庫
    apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libgl1-mesa-dev libglu1-mesa libglu1-mesa-dev libxi-dev
  • 選擇配置骡送,直接從網(wǎng)站中下載deb文件


  • 根據(jù)官網(wǎng)提示的命令運行:
sudo dpkg -i cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb
sudo apt-get update
sudo apt-get install cuda

可以在/usr/local/中找到安裝好的文件夾:


  • 配置環(huán)境變量
    命令:sudo gedit /etc/profile
    在文件最后加上
PATH=/usr/local/cuda/bin:$PATH 
export PATH 
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export LD_LIBRARY_PATH 

命令:source /etc/profile
最好能夠退出(Logout)當(dāng)前賬戶再登錄昂羡,以確保環(huán)境配置成功

  • 檢驗
    命令:nvcc --version,出現(xiàn)下圖結(jié)果:
  • 安裝cuda samples
    直接參考這篇博客Cuda Samples安裝部分摔踱。
    注意虐先,采用deb方式安裝的Cuda,Sample文件夾不在home下派敷,而直接保存在cuda目錄中蛹批。
  • ./deviceQuery執(zhí)行結(jié)果


  • Cuda安裝測試完畢

2.4 安裝Cudnn6

注意:CUDA9.1需要與Cudnn7配合使用

#解壓文件
tar -zxvf cudnn-6.5-linux-x64-v2.tgz
#切換路徑篮愉,復(fù)制文件
cd cuda
sudo cp lib/* /usr/local/cuda/lib64/
sudo cp include/cudnn.h /usr/local/cuda/include/
#更新軟連接
cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.6
sudo ln -s libcudnn.so.6.0.20 libcudnn.so.6
sudo ln -s libcudnn.so.6 libcudnn.so 
  • 在官網(wǎng)上沒有找到cudnn Sample腐芍,先不測試。
  • cudnn安裝完成

2.5 安裝MKL

  • 首先在官網(wǎng)申請免費下載试躏。需要用edu結(jié)尾的郵箱申請猪勇。
  • 很快郵箱中會收到一封包含下載鏈接和序列號的郵件,直接點擊鏈接進入下載頁面即可下載颠蕴。如下圖:


  • 下載完成后泣刹,使用sudo tar -xvf命令解壓文件夾,閱讀安裝指導(dǎo)pdf犀被。
  • 根據(jù)安裝手冊项玛,首先到官網(wǎng)進行序列號注冊。
  • 注冊完成后弱判,采用GUI方式安裝mkl襟沮。運行install_GUI.sh文件。這里根據(jù)安裝指導(dǎo)和需要一步步安裝就好了昌腰。
  • 安裝完成后开伏,使用source命令添加環(huán)境變量,命令source /[path to your intel]/intel/mkl/bin/mklvars.sh intel64遭商。為了方便固灵,我直接把該命令添加到~/.bashrc文件中了,每次啟動命令行可以添加好環(huán)境變量劫流。
  • mkl安裝完成

2.6 安裝Matlab

(我之前在byr上下載了MatlabR2017A安裝包巫玻,沒想到現(xiàn)在byr不能登錄了丛忆。。仍秤。)
(好像2017版本的matlab不能接入caffe熄诡,我在make matcaffe的時候總有問題,所以暫時只是安裝好了MATLAB诗力,沒有做與caffe的借口)
安裝包包括三個文件凰浮,分別是R2017a_glnxa64_dvd1.iso,R2017a_glnxa64_dvd2.iso苇本,和Crack文件夾袜茧。網(wǎng)絡(luò)上其他版本基本上也是如此,比較常見的是一個ISO文件和一個Crack文件夾瓣窄,安裝過程類似笛厦。

  • 首先要閱讀Crack文件夾中的Readme文件,里面有序列號以及安裝指導(dǎo)俺夕。
  • 安裝過程主要參考這篇博客
  • 主要使用以下幾個命令:
sudo mkdir /media/matlab       #新建文件夾
sudo mount -o loop [path]/[ISO文件] /media/matlab      #兩個ISO的話递递,先加載dvd1即可,dvd2以后用
sudo /media/matlab/install      #運行安裝文件
sudo umount /media/matlab   #安裝完成后取消掛載
  • 安裝完成后啥么,用命令:sudo chmod -R a+w /××××/×××/matlab 把matlab所在的文件夾改成讀寫狀態(tài)登舞,進行破解
  • 將Crack文件夾中的licence文件復(fù)制到安裝目錄下的licence文件夾內(nèi)

Use license_standalone.lic to activate, or copy license_standalone.lic to %installdir%\licenses\ ,and run matlab without activation

  • 將Crack文件夾中 /R2017a/bin/glnxa64/libmwservices.so 復(fù)制到安裝目錄下的對應(yīng)文件夾中

after the installation finishes copy the folders to %installdir% to overwriting the originally installed files

  • 到這里就安裝+破解完成。在Terminal中執(zhí)行 ./%installdir%/bin/matlab 就可以運行Matlab了


2.6 安裝Opencv

  • github上已經(jīng)有人寫好了腳本悬荣,可以直接根據(jù)需求下載安裝菠秒。
  • 需要說明的是,如果直接安裝最新版本氯迂,會安裝到opencv3践叠,如果想安裝opencv2的話,可以進入相應(yīng)的目錄嚼蚀,運行對應(yīng)的腳本進行安裝禁灼。可以參考這個博客轿曙。
  • 我直接運行的腳本進行的安裝弄捕,安裝完成后用pkg-config --modversion opencv命令查看opencv版本,如下圖:
  • opencv安裝完成

3.編譯caffe

第二部分介紹了caffe編譯前的各種準(zhǔn)備工作导帝,全部安裝完成后守谓,就可以進行caffe的編譯了。

  • 首先進入caffe-master文件夾您单,直接采用caffe官網(wǎng)上提供的cmake方式進行編譯斋荞。

In lieu of manually editing Makefile.config to configure the build, Caffe offers an unofficial CMake build thanks to @Nerei, @akosiorek, and other members of the community. It requires CMake version >= 2.8.7. The basic steps are as follows:
mkdir build
cd build
cmake .. -DBLAS=MKL 這里由于我用了mkl嗽桩,所以加上了‘-DBLAS=MKL’這一限制
make all -j '-j'是為了采用多核進行編譯葵萎,速度較快府寒。還可以在j后面加上數(shù)字限制核的數(shù)量受葛。如‘-j8’
make install -j
make runtest -j
make pycaffe 配置caffe的python接口

在編譯caffe的時候我開始用了make方式,一直報錯蜈彼。采用cmake之后很順利筑辨,沒有遇到問題。至此caffe編譯完成柳刮,可以運行了。

4.mnist例子測試

  • mnist測試的例子網(wǎng)上有很多痒钝,例如這篇秉颗,可參考此步驟。
  • 測試結(jié)果:


    訓(xùn)練開始

    訓(xùn)練結(jié)束
  • caffe運行成功送矩,16秒完成10000次循環(huán)蚕甥,正確率可達(dá)99.05%

5.以上就是配置caffe全過程,如有疏漏栋荸,以后補充菇怀。

注:開始配置的時候是在Ubuntu17.04上,后來更換了16.04的系統(tǒng)晌块。安裝步驟一樣爱沟。只是文中配圖還有一些是原來安裝的截圖,但不影響結(jié)果匆背。在16.04系統(tǒng)上完全可用呼伸。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市钝尸,隨后出現(xiàn)的幾起案子括享,更是在濱河造成了極大的恐慌,老刑警劉巖珍促,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件铃辖,死亡現(xiàn)場離奇詭異,居然都是意外死亡猪叙,警方通過查閱死者的電腦和手機娇斩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來穴翩,“玉大人成洗,你說我怎么就攤上這事〔胤瘢” “怎么了瓶殃?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長副签。 經(jīng)常有香客問我遥椿,道長基矮,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任冠场,我火速辦了婚禮家浇,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘碴裙。我一直安慰自己钢悲,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布舔株。 她就那樣靜靜地躺著莺琳,像睡著了一般。 火紅的嫁衣襯著肌膚如雪载慈。 梳的紋絲不亂的頭發(fā)上惭等,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天,我揣著相機與錄音办铡,去河邊找鬼辞做。 笑死,一個胖子當(dāng)著我的面吹牛寡具,可吹牛的內(nèi)容都是我干的秤茅。 我是一名探鬼主播,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼童叠,長吁一口氣:“原來是場噩夢啊……” “哼嫂伞!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起拯钻,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤帖努,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后粪般,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體拼余,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年亩歹,在試婚紗的時候發(fā)現(xiàn)自己被綠了匙监。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡小作,死狀恐怖亭姥,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情顾稀,我是刑警寧澤达罗,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響粮揉,放射性物質(zhì)發(fā)生泄漏巡李。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一扶认、第九天 我趴在偏房一處隱蔽的房頂上張望侨拦。 院中可真熱鬧,春花似錦辐宾、人聲如沸狱从。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽季研。三九已至,卻和暖如春吊洼,著一層夾襖步出監(jiān)牢的瞬間训貌,已是汗流浹背制肮。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工冒窍, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人豺鼻。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓综液,卻偏偏與公主長得像,于是被迫代替她去往敵國和親儒飒。 傳聞我的和親對象是個殘疾皇子谬莹,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,724評論 2 354

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