1. 程式人生 > >ubunt16.04+cuda9.0+cudnn+opencv3.4.0+caffe環境搭建

ubunt16.04+cuda9.0+cudnn+opencv3.4.0+caffe環境搭建

一、cuda安裝

要注意:禁用nouveau驅動,然後到官網下載顯示卡驅動,安裝好,再安裝cuda,建議run安裝,cuda安裝時不用再裝顯示卡驅動

二、cudnn

下載Linux檔案,解壓,複製到特定資料夾,進行軟連線,主要下載的版本檔名

三、opencv

安裝opencv3.4.0,其他較低版本可能不支援cuda9.0
解壓檔案,進入檔案目錄

mkdir build # 建立編譯的檔案目錄

cd build

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

make -j4

編譯過程需要科學上網,編譯完再安裝

sudo make install #安裝1

測試安裝是否成功
pkg-config --modversion opencv

四、安裝caffe

git clone https://github.com/BVLC/caffe.git
sudo cp Makefile.config.example Makefile.config

修改Makefile.config檔案

sudo gedit Makefile.config

去掉這些註釋
#USE_CUDNN := 1
#OPENCV_VERSION := 3 
#WITH_PYTHON_LAYER := 1 

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 檔案

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

將:
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m 
改為:
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial

這部分我安裝過程中沒修改,因為方向沒有下述語句
修改/usr/local/cuda/include/host_config.h(也可能是crt/host_config.h)

#error-- unsupported GNU version! gcc versions later than 4.9 are not supported!
改為
//#error-- unsupported GNU version! gcc versions later than 4.9 are not supported!

然後編譯

make all -j8

編譯遇到compute_20的報錯,解決方法:修改Makefile.config檔案,將CUDA_ARCH中有關compute_20的語句刪了

編譯成功後測試

sudo make runtest -j8
顯示pass則成功

這裡遇到報錯libopencv_core.so.3.4缺失,解決方法:sudo ldconfig /usr/local/lib/x86_64-linux-gnu

然後再安裝pycaffe

sudo gedit ~/.bashrc
新增一行
export PYTHONPATH=/home/selfdriving/caffe/python:PYTHONPATH
source ~/.bashrc

進入到caffe目錄

 sudo make pycaffe -j8

測試

python
import python

遇到報錯skimage.io模組,解決:sudo pip install scikit-image。如果matplotlib裝不了,就升級pip,再安裝