caffe+cuda6.5+cudnn7.0+opencv3.0搭建经验记录

版权声明:版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Lee_J_R/article/details/52122947

前言

因为最近需要用到caffe平台,于是自己试着搭一搭,这一搭就是三天,其中遇到很多的挫折,重装系统也不是2,3次的事了。趁着心情还在把这个过程中遇到的一些事和问题记录下来,一来方便以后再搭或者帮别人搭;二来也给后来着一些启示吧。

一开始其实真的连caffe是什么都还搞不太清楚,只把它当做一个工具,就是知道要下载很多依赖库。在网上百度ubuntu14.04+caffe然后就有一堆的教程,这其实也是个坑,教程太多也不知道哪个是对的,有时看看这个,装了一个库后又看另外一个教程。所以必须要学会精选,最后只留下一到两篇,就按照它来一步步安装。我最后挑选下来的是欧阳宇大大写的一份教程,非常认真和详细,还把要下载的各种工具和库放在网盘里分享出来了,非常适合新手!这里给出链接:Caffe + Ubuntu 15.04 + CUDA 7.5 新手安装配置指南

一、caffe安装

经过几天的了解,终于搞清楚了caffe的各步安装情况。网上一般会把caffe和各种工具一起搭:cuda,cudnn,opencv,phthon,matlab等等(其实caffe官网也又介绍:http://caffe.berkeleyvision.org/installation.html)。其实caffe如果去掉这些工具也是可以运行的,没有这些工具的话只需要一步步的按照caffe官网的安装教程http://caffe.berkeleyvision.org/install_apt.html 来就好了(请务必先把官网的教程看一遍!)。

1、从github中下载官方的caffe

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

当然也可以从我最后给出的网盘链接里下载:百度网盘链接: http://pan.baidu.com/s/1o8piCn4 密码: jsjd

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 libgflags-dev libgoogle-glog-dev liblmdb-dev

3、BLAS(Basic Linear Algebra Subprograms 基本线性代数子程序)

常用的BLAS实现有:Intel MKL、atlas、OpenBLAS等。可以选择其中一种,其中atlas的安装最简单,其余的可以百度教程。
安装atlas:
sudo apt-get install libatlas-base-dev

4、切换到Caffe-master的文件夹,生成Makefile.config配置文件,执行:

cp Makefile.config.example Makefile.config

5、修改Makefile.config,编译即可使用caffe。

这里由于没有使用cuda、cudnn等nvidia的GPU加速库,所以只需打开CPU_ONLY即可

sudo gedit Makefile.config
# CPU-only switch (uncomment to build without GPU support).
# CPU_ONLY := 1

中CPU_ONLY := 1前的”#“去掉即可。
保存!
继续在Caffe-master文件夹目录下:

sudo make all -j4
sudo make test -j4
sudo make runtest -j4
"-j4"是使用CPU的多核进行编译,可以极大地加速编译的速度,建议使用。
必须根据自己CPU情况选择4或8或16,选择过大的数字编译时会出错!!!

如果都编译成功了,到这里其实算已经把caffe装好了。
如果你的电脑是有nvidia显卡,并且支持GPU的话,可以继续装一些加速库,会使你跑网络的时候快上很多倍。

注意!!!

在安装下面的各种库后需要再修改Makefile.config文件,把对应的工具前的”#“删去或加上。
注意,修改后需要重新make!!!

切换到Caffe-master的文件夹,

sudo make clean
sudo make all -j4
你可以先全部安装了下面的各种工具后再统一修改Makefile.config文件,这样就可以一次编译就好。缺点是如果出问题就不知道出现再哪个工具的安装上。一个一个工具安装再编译缺点就是花费时间可能稍长,但有点是比较稳。

二、安装cuda6.5

官网安装教程:http://developer.download.nvidia.com/compute/cuda/7.5/Prod/docs/sidebar/CUDA_Quick_Start_Guide.pdf

有两种方法:deb版和run版。两种都可以,前者更方便。我在这里就不详述安装步骤了,前者在Caffe + Ubuntu 15.04 + CUDA 7.5 新手安装配置指南这里面和其他很多教程里都有介绍。后者请参考文章:Caffe + Ubuntu 14.04 64bit + CUDA 6.5 配置说明一定要一步一步安装教程,不要去参考太多其他的。要不很容易在这里花掉非常多的时间。

接下来主要介绍一些我在这里遇到的问题:

1、装完cuda之后重启进不去图形界面,就一直黑屏,只能ctrl+Alt+F1进入文字界面。

网上有很多方法,但各种尝试后发现直接换一个启动时的图形界面最简单直接粗暴!

ctrl+alt+F1进入文字界面
sudo stop lightdm 
sudo apt-get install gdm
安装中途会让你选一个默认的启动图形界面,选择gdm,安装完重启即可
sudo reboot

2、运行samples里面的deviceQuery例子时出现:

CUDA Device Query (Runtime API) version (CUDART static linking)
cudaGetDeviceCount returned 30
-> unknown error
Result = FAIL
在这个论坛里找到解决方法:Could not load nvidia-uvm

新建文件 /etc/modprobe.d/bumblebee.conf,并在里面写入

alias nvidia-uvm nvidia-340-uvm
其中nvidia-340-uvm可以修改成你的nvidia版本
虽然不知道是什么原理,但的确这样后再运行那个例程就成功了。

3、运行例程出现问题:

./deviceQuery Starting...

 CUDA Device Query (Runtime API) version (CUDART static linking)

cudaGetDeviceCount returned 38
-> no CUDA-capable device is detected
Result = FAIL
这个应该是显卡驱动不匹配的问

查看显卡

lspci | grep -i nvidia  

然后上nvidia官网(http://www.nvidia.com/Download/Find.aspx?lang=en-us)查找匹配的驱动,并且要与你的cuda版本相匹配

上这个网站能查看哪些显卡是支持cuda的:https://developer.nvidia.com/cuda-gpus


下载对应的显卡驱动重新安装
参考文章:Ubuntu14.04安装NVIDIA显卡驱动

三、安装cudnn7.0

安装过程特别简单,就是下载好cudnn7.0的相应版本的库的后把里面的头文件和库文件复制到相应的地方即可
Caffe + Ubuntu 15.04 + CUDA 7.5 新手安装配置指南这里面也有详细介绍就不再累赘了。
主要遇到问题:

1、在后来编译caffe时容易出现以下错误:

error: ‘CUDNN_PROPAGATE_NAN’ was not declared in this scope
或者其他与cudnn有关的错误,90%都是cudnn版本不匹配的问题,cudnn有v2,v3,v4,最新是v5版本,有些是版本太小,需要换大的,有些恰恰相反,多试几个就行。
先把原来的删掉,再复制进新的cudnn库文件和头文件。

有些是因为电脑问题,支持不了太低版本的cudnn,可能就用不了cudnn了。例如笔记本上显卡是GT540M,它的CUDA Capability是2.1,而官方的cudnn加速是不支持3.0以下的版本的,因此只能在Makefile.config中注释掉USE_CUDNN这行。

=================================================================

简单讲就是GPU的加速性能不够,CUDNN只支持CUDA Capability 3.0以上的GPU加速

==================================================================

四、安装OpenCV

github上有大神编译好的安装包,可以一步傻瓜式安装。
如果想一步步安装的可以参照这篇博客: Ubuntu14.04安装OpenCV3.0Ubuntu14.04配置OpenCV3.0的方法(PS:其实对比以下两种方法会发现前者是把后者的安装步骤写成了一个脚本,非常方便,不仅可以一步安装,而且可以选择不同版本opencv的安装)

1、提供一个百度云,里面有安装包。百度云盘链接: http://pan.baidu.com/s/1qX1uFHa 密码:wysa
2、在Install-OpenCV-master文件夹中包含安装各个版本opencv脚本
3、切换到目录执行,安装依赖项: 

sudo sh Ubuntu/dependencies.sh 

4、执行opencv3.0安装脚本 

sudo sh Ubuntu/3.0/opencv3_0_0.sh 
等待安装完成即可

5、修改Makefile.config

# Uncomment if you're using OpenCV 3
#OPENCV_VERSION := 3
中OPENCV_VERSION := 3前的”#“去掉即可

6、重新make

在make 之前要先把动态链接库更新

sudo ldconfig /usr/local/cuda/lib64(64位)
否则在sudo make runmake时会出现以下错误:
error while loading shared libraries: libcudart.so.7.5: cannot open shared object file: No such file or directory

主要遇到的问题:

1、一步式安装过程中遇到各种问题,比如opencv版本下载太慢,出现各种bug等

以opencv3.0为例,可以打开opencv3_0_0.sh ,找到下载安装包的地方:

wget -O opencv-3.0.0.zip http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/3.0.0/opencv-3.0.0.zip/download
里面就有opencv3.0的下载地址,可以拿到windows里面用迅雷下载(PS:这个是个网站地址,还不是直接的下载链接,下网站里又下载链接的)
下载后,再安装opencv3_0_0.sh文件后的步骤手动进行安装。

2、cmake过程中卡在ippcv的下载中或者ICV的hash码不匹配

可以自行从http://sourceforge.net/projects/opencvlibrary/files/3rdparty/ippicv这里下载,解压到opencv-master —> 3rdparty —> ippicv —> downloads —> linux-xxxxxxxxxxxxxxxx 下面

再把选项-D WITH_IPP=OFF添加到上面的cmake命令中,重新cmake即可。即

sudo cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D WITH_QT=ON -D WITH_OPENGL=ON -D WITH_IPP=OFF ..

好了,另外还有phython,matlab等等的接口的安装由于暂时还没有需要就不继续安装了,网上也有很多教程。

总结

最后再总结一下:

1、最好先把大的文件都先下载好,安装的时候就方便了,列一个大文件清单:

a、caffe-master.rar

b、cuda-repo-ubuntu1404-7-5-local_7.5-18_amd64.deb或者cuda_6.5.14_linux_64.run

c、ippicv_linux_20141027.tgz

d、cudnn的各个版本:cudnn-7.0-linux-x64-v4.0-prod.tgz/cudnn-7.0-linux-x64-v3.0-rc.tgz等

e、opencv 的各个版本:opencv-3.0.0.zip/opencv-3.1.0.zip等

这里我也提供我自己整理的资源:百度网盘链接: http://pan.baidu.com/s/1o8piCn4 密码: jsjd

2、必须要先了解好自己机子的各种性能,主要是显卡性能,执行:

cat /proc/driver/nvidia/version
可以查看本机显卡性能,比如我的机子的结果是

NVRM version: NVIDIA UNIX x86_64 Kernel Module 340.96 Sun Nov 8 22:33:28 PST 2015
GCC version: gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.1) 

再到nvidia官网看显卡型号的性能,是否支持cuda、cudnn,支持到什么版本,这很重要!!!

3、再强调一次,网上很多教程,可以参考,但主要就选一个教程来安装,太多很容易乱,出错也不知道是谁的错!

如果我的文章对你的安装过程有一点点帮助,那就够了!
谢谢!

参考资料

1、Caffe + Ubuntu 15.04 + CUDA 7.5 新手安装配置指南

2、Caffe+Ubuntu14.04+CUDA7.5安装笔记

3、caffe官方安装教程:Ubuntu Installation

4、run方法安装cuda6.5:Caffe + Ubuntu 14.04 64bit + CUDA 6.5 配置说明

5、opencv3.0安装参考:Ubuntu14.04安装OpenCV3.0

没有更多推荐了,返回首页