Ubuntu16.04操作系統下配置caffe環境(GPU版本)

說明:如果你按照這個文檔操作,請完全按照這下面的目錄進行操作。如你是對這個環境非常熟悉,就當我沒有說這句,哈哈~
整體步驟:

  1. 查詢顯卡型號
  2. 安裝顯卡驅動
  3. 安裝CUDA
  4. 安裝cuDNN
  5. 安裝opencv
  6. 配置caffe
  7. 安裝ffmpeg,此項如果沒有用到可以選擇不安裝

詳細描述:

  1. 顯卡型號查詢
 lspci | grep -i nvidia

在這裏插入圖片描述

  1. 根據查詢出的顯卡型號去下載對應的顯卡驅動 NVIDIA官網,我這裏下載是GeForce GTX 1050Ti的顯卡驅動
  2. 顯卡驅動安裝
    1)首先屏蔽自帶的顯卡驅動
vim  /etc/modprobe.d/blacklist.conf
#最後一行加入後面的內容將自帶顯卡驅動屏蔽 blacklist nouveau
sudo update-initramfs -u #將修改後的內容生效

此處需要重啓一下電腦

2)重啓電腦後Ctrl+Alt+F1進入命令行界面,此處會黑屏了。這時一定要找一個備用電腦來看接下的操作

sudo service lightdm stop
sudo chmod +x ./NVIDIA-Linux-x86_64-384.111.run --no-opengl-files 

重點:如果你是雙顯卡的電腦,請一定要加上這個參數–no-opengl-files,如果沒有加,那麼你將無法進去圖形界面了,就會在登錄頁面一直登錄。
重啓電腦後,輸入sudo nvidia-smi 命令會顯示顯卡相關信息,如果看到以下圖片說明顯卡驅動安裝成功了。
在這裏插入圖片描述
4. 安裝CUDA
1)下載安裝官網地址
2)安裝,一定要去安裝的時候顯卡驅動去掉,因爲我們已經安裝過驅動了。

sudo chmod 777 cuda_9.0.176_384.81_linux.run
sudo ./cuda_9.0.176_384.81_linux.run

3)環境配置

#vim ~/.bashrc 最後增加以下就可以了
exportPATH=/usr/local/cuda-10.1/bin${PATH:+:${PATH}}
exportLD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

4) 測試是否安裝成功

cd /usr/local/cuda-10.1/samples/1_Utilities/deviceQuery
sudo make
sudo ./deviceQuery

看到以下顯示,說明你的cuda安裝成功了。
在這裏插入圖片描述5. 安裝配置cuDNN
1)下載cuDNN下載,此處需要注意的是版本要與cuda版本一致
2)安裝

sudo tar -zxvf ./cudnn-10.1-linux-x64-v7.tgz
cd cuda/include
sudo cp cudnn.h /usr/local/cuda/include  #複製頭文件到cuda頭文件目錄
cd ..

cd lib64

sudo cp lib*/usr/local/cuda/lib64/    #複製動態鏈接庫
cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.7    #刪除原有動態文件
sudo ln -s libcudnn.so.7.0.5 libcudnn.so.7  #生成軟銜接
sudo ln -s libcudnn.so.7 libcudnn.so      #生成軟鏈接
  1. 安裝opencv+opencv_contrib
  1. 下載opencv下載地址,可以選擇對應的版本,opencv與opencv_contrib要版本一致。
    在這裏插入圖片描述2)先解壓opencv,再將opencv_contrib源碼解壓到opencv目錄中
    3)注:在第4步安裝的時候就出現以下兩個錯誤:
  • 編譯時遇到缺少boostdesc_bgm.i等文件,手動添加到缺少文件的位置(opencv_contrib-3.4.6/modules/xfeatures2d/src)下載地址
  • 找不到hpp文件目錄,根據報錯路徑找到報錯位置,修改hpp文件爲絕對路徑
/usr/local/opencv-3.4.6/modules/stitching/include/opencv2/stitching/detail/matchers.hpp:52:42: fatal error: opencv2/xfeatures2d/cuda.hpp: 沒有那個文件或目錄
/usr/local/opencv-3.4.6/modules/stitching/src/precomp.hpp:91:42: fatal error: opencv2/xfeatures2d/cuda.hpp: 沒有那個文件或目錄

/usr/local/opencv-3.4.6/opencv_contrib-3.4.6/modules/xfeatures2d/include/opencv2/xfeatures2d/cuda.hpp


/usr/local/opencv-3.4.6/modules/stitching/src/matchers.cpp:52:35: fatal error: opencv2/xfeatures2d.hpp: 沒有那個文件或目錄
/usr/local/opencv-3.4.6/opencv_contrib-3.4.6/modules/xfeatures2d/include/opencv2/xfeatures2d.hpp

/usr/local/opencv-3.4.6/opencv_contrib-3.4.6/modules/xfeatures2d/include/opencv2/xfeatures2d.hpp:43:43: fatal error: opencv2/xfeatures2d/nonfree.hpp: 沒有那個文件或目錄

/usr/local/opencv-3.4.6/opencv_contrib-3.4.6/modules/xfeatures2d/include/opencv2/xfeatures2d/nonfree.hpp

4)安裝
謹記設置WITH_GTK=ON

cd release // release是自己創建的存放cmake結果的目錄
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_ENABLE_NONFREE=ON -D OPENCV_EXTRA_MODULES_PATH=/opencv_contrib路徑/modules ..
make -j8
sudo make install
  1. 配置caffe
  1. 安裝依賴包
apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
apt-get install --no-install-recommends libboost-all-dev
apt-get install libopenblas-dev liblapack-dev libatlas-base-dev
apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

2)下載源碼包caffe git 地址
3)修改配置文件

cp Makefile.config.example Makefile.config 
vim Makefile.config 

將以下三項的註釋去掉

#USE_CUDNN:= 1
#OPENCV_VERSION:= 3
#WITH_PYTHON_LAYER:= 1 

修改此處(此處不要直接全部手複製,直接加一些新加的部分就可以),如下:

#Whatever else you find you need goes here
INCLUDE_DIRS:= $(PYTHON_INCLUDE) /usr/local/include
LIBRARY_DIRS:= $(PYTHON_LIB) /usr/local/lib /usr/lib
修改爲:
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

修改完成後,還需要修改Makefile,記得這個文件和Makefile.config不是一個文件噢

NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC$(COMMON_FLAGS)
替換爲:
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)

4) 編譯,測試

make all -j8
sudo make runtest

在這裏插入圖片描述
當看到以下顯示時,恭喜你,配置完成了。如果你需要ffmpeg可以安裝,如果不需要。那麼到這裏就可以了。
在此提示一下,這個環境的安裝與配置,請不要這找一點內容那裏找一點內容,結果安裝的時候就出現各種錯誤。因爲我當時就是這樣找了各種的文章,結果出現了各種錯誤。照此文章一般不會出什麼錯誤,因爲這是我驗證過的。希望對你有幫助~~~

  1. 安裝ffmpeg,這個就是相對好安裝多了,我選擇了一個最快的方法
apt-get install ffmpeg

備註:在安裝的過程遇到了這個問題,到最後也沒有定位到這個問題是什麼原因(我重新從第一步安裝了一下就好了),我估計應該是我之前安裝opencv的時候出現了問題。有朋友遇到過這個問題解決了,可以在下面留言告訴我一下,謝謝。

NVCC src/caffe/util/im2col.cu
AR -o .build_release/lib/libcaffe.a
LD -o .build_release/lib/libcaffe.so.1.0.0
CXX tools/upgrade_net_proto_binary.cpp
CXX/LD -o .build_release/tools/upgrade_net_proto_binary.bin
/usr/bin/ld: .build_release/lib/libcaffe.so: undefined reference to symbol 'dlclose@@GLIBC_2.2.5'
//lib/x86_64-linux-gnu/libdl.so.2: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
Makefile:635: recipe for target '.build_release/tools/upgrade_net_proto_binary.bin' failed
make: *** [.build_release/tools/upgrade_net_proto_binary.bin] Error 1

錯誤備註:

  1. 提示找不到庫文件,需要安裝 apt-get install libxml2 libxml2-dev
找不到xml2庫錯誤:apt-get install libxml2 libxml2-dev
  1. 報錯*** Error in `python’: free(): invalid pointer
apt-get install libtcmalloc-minimal4
vim ~/.bashrc
#增加以下配置文件
export LD_PRELOAD="/usr/lib/libtcmalloc_minimal.so.4"
#重新加載環境變量
sudo source ~/.bashrc

鎖定固定版本,啓動默認使用內核
https://blog.csdn.net/haijun7013/article/details/105454293?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase

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