Ubuntu18.04 + CUDA + cuDNN + Opencv + Caffe

因为用了18.04 以及 opencv4 cuda10 一切都变了,尤其是caffe的安装

所以下来给出最新的,具体需要根据自身实际情况略加修改,比如相应的文件目录位置等,大体不变,主要参考的是linux公社的两篇博文,希望等帮到大家。

需要注意的是ubuntu18.04下显卡驱动的安装请参考https://blog.csdn.net/Haku_yyf/article/details/90260639

cuda推荐使用.run文件安装(别选驱动,因为我们已经手动安装了,会有冲突,其他默认接受就可以)

cudnn环境配置等还是参考我原来的方法:https://blog.csdn.net/Haku_yyf/article/details/83894110

#######################################################################################

Opencv4.1:

sudo apt-get install libcanberra-gtk-module  

sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev

https://www.linuxidc.com/Linux/2019-05/158419.htm

Caffe:

https://www.linuxidc.com/Linux/2019-05/158422.htm

安装完以后完成的测试代码没跑通,因为opencv版本的问题,api接口不对,看一下报错的文件,把对应文件中的代码用编译安装时候使用的sed命令(上面链接里面的几条sed命令)替换一下就可以了。完美运行测试程序。这已经是我第二次安装成功了,第一次是在16.04上,这次是18.04,但是这只是最原始的caffe,后面学习faster-rcnn等算法的时候,编译不通,我估计是因为opencv,cuda,g++等版本都太高了,这也是caffe的痛点,看起来使用起来简单,但要用别人的代码配置太痛苦了,除非是c/c++大神,而且还会cuda编程,就这也要看各个依赖库的版本吧,我是用不来,怪不得从16年之后就慢慢没落了,感觉研究研究源码还是有意义的,非要跑通部署这些真的算了。或者你觉得docker  caffe这样搭配好用也可以,我简单看了下,没有深入研究。感觉现在无论tf, 还是pytorch感觉都有替代方案,不是说非要caffe。

加油↖(^ω^)↗

 

##################################################################

##########################下面是原本的16.04的,可以参考,###########

1安装依赖:

Ubuntu16.04系统

如果你之前已经编译安装过opencv请先卸载干净(卸载参考)

CUDA + cuDNN 请参考我之前的一篇博客(参考博客)#这里我已经安装了最新的CUDA10.0,以及相应的最新的cuDNN。

安装opencv依赖库

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install cmake
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff4.dev libswscale-dev libjasper-dev libopencv-dev
sudo apt install ffmpeg

安装caffe依赖库

(1) 安装最新的ZLIB库,因为编译caffe需要1.2.9以上的ZLIB库,Ubuntu16.04自带的版本低于这个版本,我们从源码安装最新的即可:

下载ZLIB源码(tar.gz)

编译安装ZLIB:

cd path/to/zlib #切换到解压后的安装文件目录
sudo ./configure
sudo make
sudo make install

(2)安装其他依赖包:

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脚本安装Opencv:

从Github下载安装脚本:

git clone https://github.com/jayrambhia/install-opencv

安装:

cd Ubuntu
sudo chmod +x *
sudo ./opencv_latest.sh

静静的等它安装完成就可以了!

使用下面命令检查opencv版本

pkg-config --modversion opencv

 3编译安装Caffe:

(1)从Github下载caffe源码:

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

(2)修改Makefile.config:

因为make指令只能make  Makefile.config文件,而源码里只给出了Makefile.config.example的示例文件。因此,首先应该将Makefile.config.example的内容复制到Makefile.config:

cd caffe
sudo cp Makefile.config.example Makefile.config

打开并修改配置文件:

sudo vim Makefile.config #打开Makefile.config文件,根据个人情况进行修改

a. 若使用cudnn, 则将

#USE_CUDNN:=1

修改成:

USE_CUDNN:=1

 

b. 因为我们安装的是最新的CUDA10.0,所以要设置CUDA_ARCH,将

CUDA_ARCH := -gencode arch=compute_20,code=sm_20 \

                               -gencode arch=compute_20,code=sm_21\

这两行注释或者直接删除,注意注释后在第三行重新加上开头的 CUDA_ARCH :=

 

c. 若使用的opencv版本是3,则将

#OPENCV_VERSION:=3

修改为:

OPENCV_VERSION:=3

 

d. 若要使用python来编写layer,则将

#WITH_PYTHON_LAYER:=1

修改成:

WITH_PYTHON_LAYER:=1

 

e. 很重要的一项,将

#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的位置,所以需要更改这一路径。

(3)修改Makefile文件

打开Makefile文件,做如下修改,将:

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

替换为:

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

 

最后:   编辑/usr/local/cuda/include/host_config.h 将

#error-- unsupported GNU version! gcc versionslater than 4.9 are not supported!

改为:

//#error-- unsupported GNU version! gcc versionslater than 4.9 are not supported!

(4)编译

sudo make all -j4

 (5) 测试

sudo make runtest

Ubuntu18.04 + CUDA + cuDNN + Opencv + Caffe_第1张图片

 如果如图显示一片绿,那就说明配置成功了!

4 MNIST手写数字识别

配置好caffe后,我们可以利用MNIST数据集对caffe进行测试,过程如下:

cd ~/caffe

下载数据

./data/mnist/get_mnist.sh

将数据转换为Lmbd数据库格式

./examples/mnist/create_mnist.sh

训练网络

./examples/mnist/train_lenet.sh

 训练结果如图所示Ubuntu18.04 + CUDA + cuDNN + Opencv + Caffe_第2张图片

 

参考博客:https://blog.csdn.net/yggaoeecs/article/details/79163789

 

 

 

 

 

 

 

你可能感兴趣的:(Ubuntu18.04)