首頁 > 軟體

Ubuntu 16.04 安裝設定Caffe 圖文詳解

2020-06-16 17:24:47

Caffe已經是第三次安裝設定了,為什麼是第三次呢?因為我實在是低估了深度學習對於硬體的要求。第一次我在自己筆電上設定的單核,CPU only ...  結果是,樣例資料跑了4小時,這還怎麼玩?第二次在桌上型電腦上,因為桌上型電腦比較low,I5處理器4核,沒有NVIDIA的GPU。我把別人訓練好的模型下載下來,然後自己測試,發現真的成功了,心裡小激動~ 然而,當我自己訓練模型時,我訓練7天.....  關鍵是7天了還在跑..... 

心想,我這個窮逼難道要自己掏錢買個伺服器?那怎麼可能。還好,老師人非常好,給我找了個伺服器~  現在終於是勞資大顯身手的時候了。

整個設定過程很長啊,坑多,沒有Linux基礎的就別來了,你會崩潰的。我參考了好幾個貼文,基本上每個貼文都有或多或少的問題,文章結尾的時候,我會留下前輩們的文章地址,算是對他們的尊敬和對我幫助的感謝。好,下面切入正題!

電腦設定:

系統:Ubuntu16.04  GPU:NVIDIA Corporation GM107GL [Quadro K620] (提示:在linux下可以通過 lspci | grep -i vga 檢視)

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

安裝過程

1.安裝相關依賴項

1 sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
2 sudo apt-get install --no-install-recommends libboost-all-dev
3 sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev
4 sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

2.安裝NVIDIA驅動

(1)查詢NVIDIA驅動

首先去官網 http://www.nvidia.com/Download/index.aspx?lang=en-us 檢視適合自己顯示卡的驅動並下載:

驅動檔案字尾名應當是以.run結尾的。我們要把這個檔案移動到家目錄下,原因是下面我們要切換到文字介面下,如果放到~/下載 下面,我們沒有辦法進入下載這個目錄(沒有中文輸入法,且中文全部是亂碼)

                 

                        圖1 輸入顯示卡型號                                                                                                                                    圖2  顯示卡驅動搜尋結果

我的顯示卡型號是Quadro K620,系統是linux 64位元,按照要求選擇後點選search. 圖2是搜尋結果,點選下載就好了。

我下載後的驅動檔案是:NVIDIA-Linux-x86_64-375.20.run

(2)安裝驅動

在終端下輸入: sudo gedit /etc/modprobe.d/blacklist.conf  

輸入密碼後在最後一行加上 blacklist nouveau .  這裡是將Ubuntu自帶的顯示卡驅動加入黑名單。

在終端輸入: sudo update-initramfs -u  

重新啟動電腦~
這裡要尤其注意,安裝顯示卡驅動要先切換到文字介面,(按Ctrl+Alt+F1~F6).所以,啟動電腦後,先進入文字介面。

然後,輸入命令 sudo service lightdm stop 

現在可以安裝驅動了,先進入家目錄 cd ~ ,然後: sudo ./NVIDIA-Linux-x86_64-375.20.run,按照提示一步步來~ 

完成後,再次重新啟動電腦。

安裝完成之後輸入以下指令進行驗證: sudo nvidia-smi ,若列出了GPU的資訊列表則表示驅動安裝成功。如下圖:

3.安裝CUDA

CUDA是NVIDIA的程式語言平台,想使用GPU就必須要使用cuda。
(1)下載CUDA
首先在官網上(https://developer.nvidia.com/cuda-downloads)下載CUDA:

 (2) 下載完成後執行以下命令:

1 sudo chmod 777 cuda_8.0.44_linux.run
2 sudo  ./cuda_8.0.44_linux.run

注意:執行後會有一系列提示讓你確認,但是注意,有個讓你選擇是否安裝nvidia367驅動時,一定要選擇否:
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 367.48?
因為前面我們已經安裝了更加新的nvidia367,所以這裡不要選擇安裝。其餘的都直接預設或者選擇是即可。

(3)環境變數設定

開啟~/.bashrc檔案: sudo gedit ~/.bashrc 
將以下內容寫入到~/.bashrc尾部:

1 export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
2 export LD_LIBRARY_PATH=/usr/local/cuda8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

(4)測試CUDA的samples

1 cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
2 make
3 sudo ./deviceQuery

如果顯示一些關於GPU的資訊,則說明安裝成功。

 4.設定cuDNN
cuDNN是GPU加速計算深層神經網路的庫。
首先去官網 https://developer.nvidia.com/rdp/cudnn-download 下載cuDNN,需要註冊一個賬號才能下載。下載版本號如下圖:

下載cuDNN5.1之後進行解壓:

sudo tar -zxvf ./cudnn-8.0-linux-x64-v5.1.tgz 

進入cuDNN5.1解壓之後的include目錄,在命令列進行如下操作:

cd cuda/include
sudo cp cudnn.h /usr/local/cuda/include  #複製標頭檔案

再將進入lib64目錄下的動態檔案進行複製和連結:

cd ..
cd lib64
sudo cp lib* /usr/local/cuda/lib64/    #複製動態連結庫
cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.5 #刪除原有動態檔案 sudo ln -s libcudnn.so.5.0.5 libcudnn.so.5 #生成軟銜接 sudo ln -s libcudnn.so.5 libcudnn.so #生成軟連結

 5.安裝opencv3.1
從官網(http://opencv.org/downloads.html)下載Opencv,並將其解壓到你要安裝的位置,假設解壓到了/home/opencv。

1 unzip opencv-3.1.0.zip
2 sudo cp ./opencv-3.1.0 /home
3 sudo mv opencv-3.1.0 opencv

安裝前準備,建立編譯資料夾:

cd ~/opencv
mkdir build
cd build

設定:

1 sudo apt install cmake
2 sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..

編譯:

sudo make -j8 

-j8表示平行計算,根據自己電腦的設定進行設定,設定比較低的電腦可以將數位改小或不使用,直接輸make。

可能出現問題:

這是因為opecv3.0與cuda8.0不相容導致的。解決辦法:修改 ~/opencv/modules/cudalegacy/src/graphcuts.cpp檔案內容,如圖:

其中, #if !defined (HAVE_CUDA) || defined (CUDA_DISABLER)||(CUDART_VERSION>=8000) 是我們修改的。
以上只是將opencv編譯成功,還沒將opencv安裝,需要執行下面指令進行安裝:

sudo make install

更多詳情見請繼續閱讀下一頁的精彩內容http://www.linuxidc.com/Linux/2016-12/138870p2.htm


IT145.com E-mail:sddin#qq.com