Ubuntu16.04+cuda9.0+opencv3.4+caffe環境搭建



參考地址:Ubuntu16.04+CUDA8.0+caffe配置

一 安裝Nvidia驅動

1.安裝依賴項

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

2.安裝過程(略,在設置里安裝驅動,版本390)


3.安裝完成之后輸入以下指令進行驗證:

sudo nvidia-smi

若列出了GPU的信息列表則表示驅動安裝成功。

二 安裝Cuda
CUDA是NVIDIA的編程語言平台,想使用GPU就必須要使用cuda。
(1)下載CUDA
首先在官網上(https://developer.nvidia.com/cuda-downloads)下載CUDA:
(2)安裝
同樣,簡化命名為cuda.run

sudo sh cuda.run

注意不要安裝圖形驅動,其他一路綠燈
(3)環境變量配置
打開~/.bashrc文件:

sudo gedit ~/.bashrc

將以下內容寫入到~/.bashrc尾部:

export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

(4)測試CUDA的sammples

cd /usr/local/cuda-9.0/samples/1_Utilities/deviceQuery #由自己電腦目錄決定
sudo make
sudo ./deviceQuery

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


三 安裝cudnn
cuDNN是GPU加速計算深層神經網絡的庫。
首先去官網(https://developer.nvidia.com/rdp/cudnn-download)下載cuDNN,可能需要注冊一個賬號才能下載。
下載CuDNN v7.X library for Linux
下載cuDNN之后進行解壓,cd進入cuDNN解壓之后的include目錄,在命令行進行如下操作:

sudo cp cudnn.h /usr/local/cuda/include/    #復制頭文件1

再將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  #生成軟銜接(注意這里要和自己下載的cudnn版本對應,可以在/usr/local/cuda/lib64下查看自己libcudnn的版本)
sudo ln -s libcudnn.so.7 libcudnn.so      #生成軟鏈接


四 安裝opencv
從官網(https://opencv.org/releases.html)下載Opencv(Sources版),並將其解壓到你要安裝的位置,假設解壓到了/home/opencv。
安裝前准備,創建編譯文件夾:

cd ~/opencv
mkdir build
cd build


配置:

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..


編譯:

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

以上只是將opencv編譯成功,還沒將opencv安裝,需要運行下面指令進行安裝:

sudo make install


五 安裝 caffe
(1)將終端cd到要安裝caffe的位置。
(2)從github上獲取caffe:

git clone https://github.com/BVLC/caffe.git

注意:若沒有安裝Git,需要先安裝Git:

sudo apt-get install git

(3)因為make指令只能make Makefile.config文件,而Makefile.config.example是caffe給出的makefile例子,因此,首先將Makefile.config.example的內容復制到Makefile.config:

sudo cp Makefile.config.example Makefile.config

(4)打開並修改配置文件:

sudo gedit Makefile.config #打開Makefile.config文件

根據個人情況修改文件:
a.若使用cudnn,則將

#USE_CUDNN := 1
修改成:
USE_CUDNN := 1

b.若使用的opencv版本是3的,則將

#OPENCV_VERSION := 3
修改為:
OPENCV_VERSION := 3

c.若要使用python來編寫layer,則將

#WITH_PYTHON_LAYER := 1
修改為
WITH_PYTHON_LAYER := 1

d. 重要的一項 :
將# 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     

這是因為ubuntu16.04的文件包含位置發生了變化,尤其是需要用到的hdf5的位置,所以需要更改這一路徑.
e.更重要的
注釋掉這一行

#-gencode arch=compute_20,code=sm_20 

(5)修改makefile文件
打開makefile文件,做如下修改:
將:

NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)

替換為:

NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)

(6)修改host_config.h

sudo gedit /usr/local/cuda/include/crt/host_config.h 

#error-- unsupported GNU version! gcc versions later than 6 are not supported!

改為

//#error-- unsupported GNU version! gcc versions later than 6 are not supported!

(7)復制鏈接

sudo cp /opencv-3.4.0/build/lib/libopencv_core.so.3.4 /usr/local/lib/libopencv_core.so.3.4 && sudo ldconfig
make -j8

在caffe/python目錄下

for req in $(cat requirements.txt); do pip install $req; done

然后

sudo apt-get install python-numpy
make py

最后

make test -j8
make runtest

測試綠圖:

cifar-10測試:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM