2021-05-12 14:32:11
Ubuntu 15.04 下Caffe + + CUDA 7.0 安裝設定指南
特別說明:
0. Caffe 官網地址:http://caffe.berkeleyvision.org/
1. 本文為作者親自實驗完成,但僅限用於學術交流使用,使用本指南造成的任何不良後果由使用者自行承擔,與本文作者無關,謝謝!為保證及時更新,轉載請標明出處,謝謝!
2. 本文旨在為新手提供一個參考,請高手勿要吐槽,有暴力傾向者,請繞道,謝謝!
3. 本文使用2015年5月5日下載的caffe-master版本,執行平台為:Ubuntu 15.04,CUDA7.0,cuDNN v2(以前一直是cuDNN R1),OpenCV 3.0.0rc1。
4. 安裝過程,因為平台不同、裝置不同、操作者不同,會遇到各種奇怪的問題和報錯資訊,請善用Caffe官網的Issues和caffe-user論壇,以及Google和Baidu。參考本指南,請下載最新版caffe-master,新版本很多檔案已經變更。
5. 最後更新時間:2015年5月6日。本次更新主要是在新版本的軟體進行部署,並修正了過去的一些bug,保留了原來14.04下安裝的部分步驟。
洋洋灑灑一大篇,就沒截圖了,經過幾個月的使用,使用Caffe還是建議在Ubuntu系統下完成,因為不需要太多的程式設計,Windows版需要一定的程式設計基礎,且因為沒有官方Release版,所以更新和FixBug都麻煩一些.這裡有個建議是,如果將來要做巨量資料集,最好事先給Linux留多點空間,比如Imagenet,估計500G都不為過。不過也可以全部使用軟連結連結到Windows的NTFS磁碟,我後期實驗都是使用這個方法。另外,請閱讀完,至少一個部分再進行動手操作,避免多餘的工作,寫作能力有限,盡請見諒。
新版的各種軟體,安裝起來還是有一定的困難的,所以請大家使用的時候要有耐心。不過Ubuntu15.04相對於14.04有兩個進步,一是視窗不會在無聊的閃爍了(也可能是驅動問題);二是存取網頁時,不會再半天都無法響應。
這篇安裝指南,適合零基礎,新手操作,請高手勿要吐槽!
簡單介紹一下:Caffe,一種Convolutional Neural Network的工具包,和Alex的cuda-convnet功能類似,但各有特點。都是使用C++ CUDA進行底層編輯,Python進行實現,原作主要部署於Ubuntu,也有大神發布了Windows版,但其他相關資料較少,不適合新手使用,所以還是Ubuntu的比較適合新手。(相對而言)
本文主要包含5個部分,包括:
- 第一部分 Linux安裝
- 第二部分 nVidia驅動和CUDA Toolkit的安裝和偵錯(*.deb方法,特別推薦)
- 第二部分 nVidia驅動和CUDA Toolkit的安裝和偵錯(*.run方法)
- 第三部分 Python安裝和偵錯
- 第四部分 Matlab安裝和偵錯
- 第五部分 Caffe的安裝和測試
第一部分 Linux安裝
Linux的安裝,如果不是Linux粉,只是必須,被迫要用它來作作科研什麼的,建議安裝成雙系統,網上方法很多,這裡我就不詳細寫了,安裝還算是傻瓜式的,和windows的過程類似,至於語言,如果覺得難度還不夠大的話,完全可以裝E文版的,甚至日文,德文~~~,我是裝的簡體中文版,我總共用分出的500G的空間來安裝Ubuntu 14.04,這個版本是最新的版本,有個好處是,可以直接存取Windows8.1的NTFS分割區,不用做額外的操作,而且支援中文,例如:$ cd /media/yourname/分割區名字/資料夾名,當然GUI就更方便了.
我的分割區設定如下:
根分割區: 100G,
Swap交換分割區:16G ,這裡,我設定和我的記憶體一樣,據說小於16G的記憶體,就設定成記憶體的1.5-2倍
boot分割區:200M
Home分割區:剩餘的空間,鑑於Imagenet,PASCAL VOC之類的大客戶,建議500G,至少300G以上。
PS:解決啟動分割區錯誤
基本上,重灌起來,都會破壞原來的啟動分割區表,還原Windows分割區的一個簡單辦法:
設定:GRUB_DEFAULT = 2
該方法適用於安裝雙系統後,"看得到Linux,看不到Windows”的情況,反過來的話,請大家自己百度吧。
PS:關於我的筆電的特例,僅供類似裝置的參考
筆電設定:技嘉P35X v3,i7-4720HQ@2.6G/16G/NVidia GTX 980 4G/Intel HD 4600/128G SSD*2 + 2T SATA *2
我的兩組硬碟SSD和SATA分別做Raid 0,目的是合併邏輯分割區,沒有考慮冗餘備份問題,最後的狀態是2個邏輯硬碟塊256G SSD + 4T SATA,用的GPA分割區,最後導致利用Ubuntu的GRUB啟動介面找不到Windows分割區。所以上面的方法失效。不過,可以通過筆電的F12和Bios設定來實現啟動分割區的選擇,並且我用Linux的機會很少,所以也就如此處理了,Linux高手可以自己折騰一下Grub啟動。Ubuntu 15.04安裝在SATA邏輯分割區,SSD分割區安裝Windows8.1。
第二部分兩種安裝方法,任選其一即可,推薦第一種方法(*.deb方法)。
關於安裝完CUDA進入不了桌面的問題,大概和顯示卡的版本、驅動版本、系統都有關係,所以以下幾種方法,可以考慮嘗試(雖然是互斥的,但是都出現過解決此問題的情況)。1. 安裝CUDA時,不安裝OpenGL;2.不安裝獨立下載的顯示卡驅動,只安裝CUDA內建的;3. 不安裝CUDA內建驅動,只安裝Toolkit,另外安裝官網下載的最新的顯示卡驅動;4. 安裝完成後,切忌自動更新Linux系統。
第二部分:nVidia驅動和CUDA Toolkit的安裝和偵錯(*.deb方法)
PS:特別推薦*.deb的方法,目前已提供離線版的deb檔案,該方法比較簡單,不需要切換到tty模式。這裡以CUDA 7.0為例。
一、CUDA Repository
獲取CUDA安裝包,安裝包請自行去NVidia官網下載。
二、CUDA Toolkit
三、Environment Variables
第二部分:nVidia驅動和CUDA Toolkit的安裝和偵錯(*.run方法)
PS:這裡其實可以參考nVidia 官方提供的CUDA安裝手冊,非常相近,32頁的,不過是全英文的,我就是參考這個文件完成後面的設定和驗證工作。https://developer.nvidia.com/rdp/cuda-65-rc-toolkit-download#linux。一般要輸入你的使用者名稱和密碼,就是下載6.5的那個賬號。
一、Verify You Have a CUDA-Capable GPU
執行下面的操作,然後驗證硬體支援GPU CUDA,只要型號存在於https://developer.nvidia.com/cuda-gpus,就沒問題了
二、Verify You Have a Supported Version of Linux
重點是“x86_64”這一項,保證是x86架構,64bit系統
三、Verify the System Has gcc Installed
沒有的話就先安裝吧,這個是必須的用來編譯CUDA Toolkit,不過Ubuntu 14.04是預設有的
四、Download the NVIDIA CUDA Toolkit
下載地址:https://developer.nvidia.com/cuda-toolkit
驗證地址:https://developer.nvidia.com/rdp/cuda-rc-checksums
例如:md5sum cuda_6.5.11_rc_linux_64.run ,這個檔案的正確 md5 = a47b0be83dea0323fab24ca642346351
這個感覺蠻重要,我第一次安裝的時候md5就沒通過,強制安裝,結果就有問題,後面重新下載了再安裝了一次
五、Handle Conflicting Installation Methods
根據官網介紹,之前安裝的版本都會有衝突的嫌疑
所以,之前安裝的Toolkit和Drievers就得解除安裝,遮蔽,等等
六、Graphical Interface Shutdown
退出GUI,也就是X-Win介面,操作方法是:同時按:CTRL+ALT+F1(F2-F6),切換到TTY1-6命令列模式。
關閉桌面服務:
七、Interaction with Nouveau
Nouveau是一個開源的顯示卡驅動,Ubuntu 14.04 預設安裝了,但是它會影響nVidia驅動的安裝,所以只有請他回老家了,sorry!
寫入:blacklist nouveau
儲存並退出: wq!
末尾寫入:rdblacklist=nouveau nouveau.modeset=0
儲存並退出: wq!
八、Installation CUDA 6.5
切換到cuda_6.5.11_rc_linux_64.run 所在的目錄,然後執行安裝命令:
再次提醒,安裝前一定要執行 md5sum ,至於如果發現md5檢測不一致,怎麼辦?別逗了,去nVidia重新下載就行了,地球人都知道,別無限迴圈就好^_^!
這裡會一路問你各種問題,基本上就是Accept-yes-Enter-yes-Enter-yes-Enter, 其實就是讓你接受協定,然後安裝的預設位置確認等等,recruit就別自定義安裝位置了,預設才是天堂。
九、Extra Libraries
安裝一些必要的庫檔案,譬如:OpenGL (e.g., Mesa), GLU, GLUT, and X11 (including Xi, Xmu, and GLX).
十、驅動裝完了,可以回到GUI介面了,也可以繼續留這裡玩文字。。。
十一、POST-INSTALLATION ACTIONS
1. Environment Setup
PS:如果出現安裝失敗,重新啟動系統,重新安裝一遍基本都可以解決,實在不行就解除安裝原來的驅動再安裝一遍。
a. 解除安裝現有驅動
b. 重灌CUDA Toolkit
好了,到這裡所有nVidia CUDA的安裝就結束了,下面看看Caffe如何安裝
第三部分 Python安裝和偵錯
1. 安裝IDE執行環境
選擇一個適合你的IDE執行環境,我是用的是Spyder,因為它內建了 iPython 環境,Caffe有不少的程式是基於 iPython 環境完成的。安裝方法很簡單,直接在Ubuntu軟體中心搜尋“spyder”即可安裝。
2. iPython NoteBook 安裝
另外一個比較推薦的方法是使用iPyhthon NoteBook(基於瀏覽器的Python IDE),特別是適合需要用Python做教學的老師們,可以直接匯出.py, .ipynb, html格式,安裝步驟如下:
啟動(自動開啟瀏覽器):
$ ipython nootbook
一個簡單的使用iPython NoteBook生成的html的例子:examples_notebook.html example_notebook.ipynb
3. 設定和編譯pycaffe(見第五部分)
第四部分 Matlab安裝和偵錯
1.下載
由於該軟體為商業軟體,請大家自行尋找,安裝學習,並確保不使用做商業目的,下載24小時刪除......
2. 預準備
選擇Mathworks.Matlab.R2014a.Unix.iso - 右鍵 - 使用磁碟映像掛載器開啟”
進入裝載的虛擬光碟,拷貝全部檔案至home/Matlab 資料夾
(PS:我的原則是能GUI就GUI,喜歡CMD的可以參照執行)
複製Crack/install.jar至 home/Matlab/java/jar/ 並覆蓋原始檔
3. 授權安裝資料夾
4. 安裝
選項:不使用Internet安裝
序列號: 12345-67890-12345-67890
預設路徑:/usr/local/MATLAB/R2014a
啟用檔案:license_405329_R2014a.lic
拷貝 libmwservices.so 至 /usr/local/MATLAB/R2014a/bin/glnxa64
安裝完畢,程式預設啟動路徑:
5.解決編譯器gcc/g++版本問題。(這裡因為折騰了一會,所以只做參考,基本流程就2步,有問題,大家可以自己嘗試。)
因為Ubuntu 15.04的gcc/g++版本是4.9.2,而Matlab 2014a(2015a)的版本是4.7.x所以在使用matla呼叫mex檔案的時候,基本上都會報錯,根據報錯資訊,考慮如下兩步解決方案。
1. 降級安裝gcc/g++版本為4.7.x
(1). 下載gcc/g++ 4.7.x
(2). 連結gcc/g++實現降級
2. 暴力參照新版本GLIBCXX_3.4.20
通過命令“strings /usr/local/MATLAB/R2014a/sys/os/glnxa64/libstdc++.so.6 | grep GLIBCXX_” 可以看一下,是否已經成功包含了GLIBCXX_3.4.20,如果已經存在,基本上就成功了。
6.編譯Matlab用到的caffe檔案(見第五部分)
第五部分 Caffe的安裝和測試
對於Caffe的安裝嚴格遵照官網的要求來:http://caffe.berkeleyvision.org/installation.html
一、安裝BLAS
這裡可以選擇(ATLAS,MKL或者OpenBLAS),我這裡使用MKL,首先下載並安裝英特爾® 數學核心庫 Linux* 版MKL,下載連結是:https://software.intel.com/en-us/intel-education-offerings, 請下載Student版,先申請,然後會立馬收到一個郵件(裡面有安裝序列號),開啟照著下載就行了。下載完之後,要把檔案解壓到home資料夾(或直接把tar.gz檔案拷貝到home資料夾,為了節省空間,安裝完記得把壓縮檔案給刪除喔~),或者其他的ext4的檔案系統中。
接下來是安裝過程,先授權,然後安裝:
二、MKL與CUDA的環境設定
1. 新建intel_mkl.conf, 並編輯之:
/opt/intel/lib/intel64
/opt/intel/mkl/lib/intel64
2. 新建cuda.conf,並編輯之:
/usr/local/cuda/lib64
/lib
3. 完成lib檔案的連結操作,執行:
三、安裝OpenCV 3.0.0
1. 下載並編譯OpenCV(官網原版OpenCV:http://opencv.org/), 或者使用本站提供的修改版的安裝包 Install-OpenCV-master (下面的安裝方式使用該包完成,安裝包修改了dependencies.sh檔案並增加了OpenCV 3.0.0的安裝檔案,同時保留了原來的2.3x和2.4x版)
2. 切換到檔案儲存的資料夾,然後安裝依賴項:
3. 切換目錄Ubuntu3.0安裝OpenCV 3.0.0rc1:
保證網路暢通,因為軟體需要聯網這裡時間較長,請耐心等待。。。,
四、安裝其他依賴項
1. Google Logging Library(glog),下載地址:https://code.google.com/p/google-glog/,然後解壓安裝:
如果沒有許可權就chmod a+x glog-0.3.3 -R , 或者索性 chmod 777 glog-0.3.3 -R , 裝完之後,這個資料夾就可以kill了。
2. 其他依賴項,確保都成功
五、安裝Caffe並測試
1. 安裝pycaffe必須的一些依賴項:
2. 安裝設定nVidia cuDNN 加速Caffe模型運算
a. 安裝cuDNN
該改版本caffe-master預設支援cudnn-6.5-linux-x64-v2,使用cudnn-6.5-linux-R1會報錯,安裝前請去先官網下載最新的cuDNN。
b. 連結cuDNN的庫檔案
3. 切換到Caffe-master的資料夾,生成Makefile.config組態檔,執行:
4. 設定Makefile.config檔案(僅列出修改部分)
a. 啟用CUDNN,去掉"#"(目前caffe-master仍然只支援R1版本)
USE_CUDNN := 1
b. 啟用GPU,新增註釋"#"
# CPU_ONLY := 1
c. 設定一些參照檔案(增加部分主要是解決新版本下,HDF5的路徑問題)
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/lib/x86_64-linux-gnu/hdf5/serial/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial
d. 啟用Intel Parallel Studio XE 2015 Professional Edition for C++ Linux
BLAS := mkl
e. 設定路徑,實現caffe對Python和Matlab介面的支援
PYTHON_LIB := /usr/local/lib
MATLAB_DIR := /usr/local/MATLAB/R2014a
5. 設定Makefile檔案(實現對OpenCV 3.x的支援)
查詢“Derive include and lib directories”一節,修改“LIBRARIES +=”的最後一行,增加opencv_imgcodecs
opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs
6. 編譯caffe-master!!!"-j8"是使用CPU的多核進行編譯,可以極大地加速編譯的速度,建議使用。
編譯Python和Matlab用到的caffe檔案
六、使用MNIST資料集進行測試
Caffe預設情況會安裝在$CAFFE_ROOT,就是解壓到那個目錄,例如:$ home/username/caffe-master,所以下面的工作,預設已經切換到了該工作目錄。下面的工作主要是,用於測試Caffe是否工作正常,不做詳細評估。具體設定請參考官網:http://caffe.berkeleyvision.org/gathered/examples/mnist.html
1. 資料預處理
2. 重建lmdb檔案。Caffe支援三種資料格式輸入網路,包括Image(.jpg, .png等),leveldb,lmdb,根據自己需要選擇不同輸入吧。
生成mnist-train-lmdb 和 mnist-train-lmdb資料夾,這裡包含了lmdb格式的資料集
3. 訓練mnist
至此,Caffe安裝的所有步驟完結,下面是一組簡單的資料對比,實驗來源於MNIST資料集,主要是考察一下不同系統下CPU和GPU的效能。可以看到明顯的差別了,雖然MNIST資料集很簡單,相信複雜得資料集,差別會更大,Ubuntu+GPU是唯一的選擇了。
測試平台1:i7-4770K/16G/GTX 770/CUDA 6.5
MNIST Windows8.1 on CPU:620s
MNIST Windows8.1 on GPU:190s
MNIST Ubuntu 14.04 on CPU:270s
MNIST Ubuntu 14.04 on GPU:160s
MNIST Ubuntu 14.04 on GPU with cuDNN:30s
Cifar10_full on GPU wihtout cuDNN:73m45s = 4428s (Iteration 70000)
Cifar10_full on GPU with cuDNN:20m7s = 1207s (Iteration 70000)
測試平台2:技嘉P35X v3,i7-4720HQ@2.6G/16G/NVidia GTX 980 4G
MNIST Ubuntu 15.04 on GPU with cuDNN:33s
對比測試1:2*E5-2620(12CPUs)/128G/Tesla K20M/CUDA5.5/CentOS 6.4
MNIST CentOS 6.4 on GPU:294s
對比測試2:Tesla K40M/CUDA6.5/ubuntu 14.04
MNIST on GPU with cuDNN:30s
對比測試3:GTX 660/CUDA6.5/ubuntu 14.04
MNIST on GPU with cuDNN:49s
對比試驗1是一個不太公平的測試,畢竟效能差很大,很可能不單單是由Tesla K20s 和GTX 770帶來的,也可能是因為CentOS或者是CUDA5.5(without cuDNN)的影響,但總體上的結論和Caffe官網的 reference performance numbers 一致,對於普通使用者:GTX的價效比高很多。對比試驗2展現了Tesla K40的強大效能,相信對於複雜影象,它應該有更強勁的表現。(感謝香港城市大學 Ph.D Jingjing、南京理工大學 Ph.D JinLu、華中科技大學 MS LiuMaolin 提供的測試環境和測試資料。)
Caffe 深度學習入門教學 http://www.linuxidc.com/Linux/2016-11/136774.htm
Ubuntu 16.04下Matlab2014a+Anaconda2+OpenCV3.1+Caffe安裝 http://www.linuxidc.com/Linux/2016-07/132860.htm
Ubuntu 16.04系統下CUDA7.5設定Caffe教學 http://www.linuxidc.com/Linux/2016-07/132859.htm
Caffe在Ubuntu 14.04 64bit 下的安裝 http://www.linuxidc.com/Linux/2015-07/120449.htm
深度學習框架Caffe在Ubuntu下編譯安裝 http://www.linuxidc.com/Linux/2016-07/133225.htm
Caffe + Ubuntu 14.04 64bit + CUDA 6.5 設定說明 http://www.linuxidc.com/Linux/2015-04/116444.htm
Ubuntu 16.04上安裝Caffe http://www.linuxidc.com/Linux/2016-08/134585.htm
Caffe設定簡明教學 ( Ubuntu 14.04 / CUDA 7.5 / cuDNN 5.1 / OpenCV 3.1 ) http://www.linuxidc.com/Linux/2016-09/135016.htm
Ubuntu 16.04上安裝Caffe(CPU only) http://www.linuxidc.com/Linux/2016-09/135034.htm
相關文章