ubuntu16.04+gtx1060+cuda8.0+caffe安裝、測試經歷

原文連接     http://www.cnblogs.com/kunyuanjushi/p/5947066.html

自己安裝Caffe的過程中,參考了很多資料,但由於版本或者其他原因,安裝過程中總是遇到這樣或者那樣的問題,因此留做記錄,方便之後查看,也希望對遇到相似麻煩的朋友們提供幫助。

   下面我們開始安裝吧:

  硬件自然不用說了,一個好的顯卡(Nvida TiTan 系列),i7的處理器,8G以上的RAM。

 

1. 安裝部分支持庫
 
sudo apt-get install build-essential
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler
sudo apt-get install freeglut3-dev libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev

2. 下載NVIDIA顯卡驅動 和 CUDA

  a. 顯卡驅動下載

  http://www.nvidia.cn/Download/index.aspx?lang=cn 選擇對應型號和系統下載(CUDA向下兼容,可以下載最新的driver)

  Linux下run文件點下載鍵直接打開網頁,可點擊右鍵另存爲即可。

  b. CUDA下載

  https://developer.nvidia.com/cuda-downloads 選擇對應系統下載

  可以下載CUDA 7.0或者 7.5

3. 安裝NVIDIA顯卡驅動和CUDA

  首先進入tty,輸入用戶名和密碼。

  關閉圖形界面:

sudo stop lightdm

  安裝驅動:(更改驅動名稱)

sudo chmod -R 777 NVIDIA-Linux-x86_64-352.21.run         
sudo sh NVIDIA-Linux-x86_64-352.21.run

  安裝CUDA:

sudo chmod -R 777 cuda_7.0.28_linux.run
sudo ./cuda_7.0.28_linux.run

  安裝過程都默認路徑就好。CUDA7會提示安裝完了Driver、Toolkit和Samples。

    備註1:如果之前你單獨安裝了驅動,安裝CUDA時,驅動安裝部分可以跳過。

    備註2:安裝Samples可能會提示 缺少一些庫,simple 也可之後編譯測試。 

  打開圖形界面

sudo start lightdm

4. 如果安裝驅動不成功,很可能會進入黑屏模式,不要着急重裝系統,進入tty重新裝一遍驅動即可。(驅動安裝成功,本步可略過)

  如果進入不了tty (ctrl+Alt+F1~F6),只是黑屏,則:

sudo sed -i -e 's/#GRUB_TERMINAL/GRUB_TERMINAL/g' /etc/default/grub
sudo update-grub<br>sudo reboot

  如果重啓機子之後就進入不了桌面,在登陸界面循環,但是可以進入tty,一般是內核引導或者驅動安裝的問題。則進入tty
lsmod | grep nouveau

  創建文件,不會用vi的可以用gedit

sudo gedit /etc/modprobe.d/nvidia-graphics-drivers.conf

  寫入  blacklist nouveau, 退出保存(wq)

  修改grub:

sudo gedit /etc/default/grub

   末尾寫入 
rdblacklist=nouveau nouveau.modeset=0

 

5. 安裝配置Nvidia cuDNN-v4 (也可下載v5版本,鏈接庫文件時注意改名)

  a. 去官網下載最新的cuDNN (cudnn-70-linux-x64-v4)。

https://developer.nvidia.com/cudnn 下載,需要先註冊爲developer,審覈通過就可以下載,大概審個兩天就可以。這個主要是針對Deep Learning框架設計的NVIDIA CUDA的GPU計算加速方案。不安裝這個也可以跑caffe。

  b. 添加頭文件和庫文件
sudo cp include/cudnn.h /usr/local/include
sudo cp lib64/libcudnn.* /usr/local/lib

  c. 鏈接cuDNN的庫文件
sudo ln -sf /usr/local/lib/libcudnn.so.4.0.7 /usr/local/lib/libcudnn.so.4
sudo ln -sf /usr/local/lib/libcudnn.so.4 /usr/local/lib/libcudnn.so
sudo ldconfig -v

 

6. 設置CUDA的環境變量 

  安裝完成後需要在/etc/profile中添加環境變量
sudo gedit /etc/profile 

  在文件最後添加:
PATH=/usr/local/cuda/bin:$PATH
export PATH

  保存後, 執行下列命令, 使環境變量立即生效
source /etc/profile

  同時需要添加lib庫路徑: 在 /etc/ld.so.conf.d/加入文件cuda.conf,
sudo gedit /etc/ld.so.conf.d/cuda.conf

  添加內容:
/usr/local/cuda/lib64

  保存後,執行下列命令使之立刻生效:

sudo ldconfig

 

7. 安裝測試CUDA simples  
  
cd /usr/local/cuda/samples
sudo make all -j8

  其中-jx中x的數字代表幾個線程同時編譯,可以加快速度,x可以根據CPU核的個數決定。

 

可能遇到的問題:/usr/bin/ld: cannot find -lGL

原因:1. 缺少libGL庫文件;2. link的問題。

方案:

1, 如果是缺少libGL庫文件,可以先搜尋庫文件安裝包
 
apt-cache search libGL-dev<br>sudo apt-get install libGL-dev

2, 先尋找link文件(.so),再根據尋找結果定位  
 
locate libGL.so

  顯示結果如下:

    
/usr/lib/x86_64-linux-gnu/libGL.so
/usr/lib/x86_64-linux-gnu/libGL.so.1
/usr/lib/x86_64-linux-gnu/libGL.so.346.46
/usr/lib/x86_64-linux-gnu/mesa/libGL.so

  鏈接文件:

sudo rm /usr/lib/x86_64-linux-gnu/libGL.so
sudo ln -s /usr/lib/x86_64-linux-gnu/libGL.so.346.46 /usr/lib/x86_64-linux-gnu/libGL.so

  其他問題解決方案類似。

 

  編譯完成後進入samples/bin/x86_64/linux/release, 運行deviceQuery

    
cd ./bin/x86_64/linux/release
./deviceQuery

  如果出現顯卡信息, 則驅動及顯卡安裝成功。  

8. 安裝Intel MKL或Atlas

  如果沒有Intel MKL, 可以用下列命令安裝免費的atlas(我在安裝過程中,使用MKL時,與caffe不兼容,於是直接使用了atlas!!!!)

    
sudo apt-get install libatlas-base-dev

 

當然使用Intel MKL會快一些,我在caffe社區也反映了兼容問題,現在已經解決。安裝Intel MKL過程如下:

  a. 下載Intel MKL

  Intel MKL可以申請學生賬號下載免費intelMKL   

  b. 解壓安裝包,下面有一個install_GUI.sh文件, 執行該文件sudo run intall_GUI.sh, 會出現圖形安裝界面,按說明安裝即可。

  c. 安裝完成後需要添加library路徑, 創建/etc/ld.so.conf.d/intel_mkl.conf文件

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

  在文件中添加內容: 

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

  注意把路徑替換成自己的安裝路徑

sudo ldconfig

  

9. OpenCV的下載安裝

  a. 下載OpenCV(建議2.4 系列,3系列差別比較大)

  在https://github.com/bearpaw/Install-OpenCV 下載到本地。opencv版本2.4.10.

  b. 安裝OpenCV
 
sudo sh ./opencv_2_4_10.sh

  腳本會自動安裝依賴項,下載安裝包,編譯並安裝OpenCV。

 

10. 安裝Caffe所需要的Python環境

  a. 直接用系統自帶的python就行了,可以通過以下命令查看python版本

python --version

 確定使用的是anaconda提供的python環境,安裝

    
which python
which pip
apt-get install python-pip

  在用戶自己的`~/.bashrc` 中添加library path

    
LD_LIBRARY_PATH=your_anaconda_path/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH

 

11. 安裝matlab  

  下載matlab後,安裝過程按照安裝包裏的要求做就可以了。(R2014a)
    
sudo ./install

  備註1:安裝完之後需要添加桌面圖標,不然每次都需要到/usr/local/MATLAB/R2014a/bin中去 sudo ./matlab 。

  備註2:不要直接去軟件中心下載matlab-support,嘗試過,一直在installing,沒有成功。

  備註3:MATLAB R2013a安裝包,遇到過一堆亂七八糟其他問題,比如撞到83%說某個庫不是exe什麼的,最後換了個安裝包和版本,一切順利。

  備註4: ubuntu和mac下,對matlab進行激活時,輸入用戶名和密碼,總是顯示連接不到服務器,我們需要將防火牆(farewall)關掉。輸入“sudo ufw disable”,然後進行激活,激活完成,"sudo ufw enable" 重啓防火牆即可!

 

12. 其他依賴項安裝

  a. Google Logging Library(glog),下載地址:https://code.google.com/p/google-glog/,然後解壓安裝:

    
tar zxvf glog-0.3.3.tar.gz
./configure
make
sudo make install

  如果沒有權限就chmod a+x glog-0.3.3 -R , 或者索性 chmod 777 glog-0.3.3 -R

  b. 其他依賴項,確保都成功

    
sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler protobuf-c-compiler protobuf-compiler

  

13. 編譯Caffe(終於到了激動人心的一刻)

  進入caffe根目錄, 首先複製一份`Makefile.config`, 然後修改裏面的內容,主要需要修改的參數包括

    CPU_ONLY 是否只使用CPU模式,沒有GPU沒安裝CUDA的同學可以打開這個選項
    BLAS (使用intel mkl還是atlas),建議使用atlas,方便又快捷
    MATLAB_DIR 如果需要使用MATLAB wrapper的同學需要指定matlab的安裝路徑, 如我的路徑爲/usr/local/MATLAB/R2014a (注意該目錄下需要包含bin文件夾,bin文件夾裏應該包含mex二進制程序)
    DEBUG 是否使用debug模式,打開此選項則可以在eclipse或者NSight中debug程序

完成設置後, 開始編譯

    
make all -j8
make test
make runtest

  如果需要matlab wrapper

    
make matcaffe

  如果需要python wrapper

    
make pycaffe

  備註:如果有多個caffe包,一定要輸出每一個的python路徑。例如有caffe1和caffe2:

    
export PYTHONPATH=your_caffe_path/caffe1/python:$PYTHONPATH
export PYTHONPATH=your_caffe_path/caffe2/python:$PYTHONPATH

  

14. 使用MNIST數據集進行測試

  Caffe默認情況會安裝在$CAFFE_ROOT,就是解壓到那個目錄,例如:$ home/username/caffe-master,所以下面的工作,默認已經切換到了該工作目錄。

 

  下面的工作主要是,用於測試Caffe是否工作正常,不做詳細評估。具體設置請參考官網:http://caffe.berkeleyvision.org/gathered/examples/mnist.html

  a. 數據預處理

    
sh data/mnist/get_mnist.sh

  b. 重建lmdb文件。Caffe支持多種數據格式輸入網絡,包括Image(.jpg, .png等),leveldb,lmdb,HDF5等,根據自己需要選擇不同輸入吧。

sh examples/mnist/create_mnist.sh

  生成mnist-train-lmdb 和 mnist-train-lmdb文件夾,這裏包含了lmdb格式的數據集

  c. 訓練mnist

sh examples/mnist/train_lenet.sh

  至此,Caffe安裝的所有步驟完結,下面是一組簡單的數據對比,實驗來源於MNIST數據集,主要是考察一下不同系統下CPU和GPU的性能。可以看到明顯的差別了,雖然MNIST數據集很簡單,相信複雜得數據集,差別會更大,Ubuntu+GPU是唯一的選擇了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章