ubuntu16.04+CUDA8.0+cuDNN5.1+opencv2.4.13+Anaconda的caffe编译过程

安装过程需要的程序包下载地址:

链接:http://pan.baidu.com/s/1nvmh4JR密码:d9p2

1、 安装ubuntu16.04系统

不建议安装wubi版,最开始装的ubuntu14.04wubi就出现许多无法解决的问题,最终无奈转战16.04。

2、 安装CUDA

CUDA7.5不支持getforce 10 系列以上的显卡,所以,那些安装有geforce 10 系列---GTX10以上的显卡的同学必须安装CUDA8.0,那些含有CUDA7.5以下的本教程将不再适用。

2.1 验证系统是否支持CUDA的安装

2.1.1 确定GPU支持CUDA,执行命令:

lspci | grep -i nvidia

在http://developer.nvidia.com/cuda-gpus验证

2.1.2 确定linux版本支持CUDA,执行命令:

uname -m && cat /etc/*release

2.1.3 确定系统已经安装了gcc,执行命令:

gcc ––version

2.2 安装CUDA 8.0

https://developer.nvidia.com/cuda-downloads下载CUDA最新版,或者在附件中有CUDA8.0(适用于ubuntu16.04)。

将三个文件下载好后放入“主文件夹”,然后根据运行以下三条命令:

sudo dpkg -icuda-repo-ubuntu1404-8-0-local-ga2_8.0.61-1_amd64.deb
sudo apt-get update
sudo apt-get install cuda

在执行第二条命令后可能会出现的问题:

E:无法解析或打开软件包的列表或是状态文件。

解决方法:

执行命令:

sudo rm /var/lib/apt/lists/* -vf

然后继续执行

sudo apt-get update
sudo apt-get update
sudo apt-getinstall cuda

2.3 安装cuDNN

可以在官网https://developer.nvidia.com/rdp/form/cudnn-download-survey下载相应的版本(建议下载cuDNN5.1,因为我在第一次用的cuDNN7.0,后期编译caffe时出现一些错误,最后才知道是cuDNN版本错误,5.1版本最后才通过),或者在附件中直接使用我下载好的cuDNN5.1。


安装过程:

下载后把文件放在主文件夹并解压:

tar -xvf cudnn-8.0-linux-x64-v5.1.tgz  

开始安装:

cd cuda/include/

sudo cp cudnn.h /usr/local/cuda/include/ 
cd ../lib64/
sudo cp lib* /usr/local/cuda/lib64/ 
cd /usr/local/cuda/lib64/ 
sudo rm -rf libcudnn.so libcudnn.so.5  
sudo ln -s libcudnn.so.5.1.5 libcudnn.so.5 
sudo ln -s libcudnn.so.5 libcudnn.so

2.4 设置环境变量,执行命令:

sudo gedit /etc/profile

在文件的最后加上两行:

PATH=/usr/local/cuda/bin:$PATH 

export PATH

保存后, 执行下列命令, 使环境变量立即生效

source /etc/profile

2.5 安装cuda samples,执行命令:

cd /usr/local/cuda/samples
sudo make all -j4

全部编译完成后,继续执行命令:

cd bin/x86_64/linux/release

运行deviceQuery,执行命令:

./deviceQuery

如果出现显卡信息,则驱动及显卡安装成功,结果如下:

CUDA安装完成!

1、 安装Atlas

3.1 下载,根据需要选择不同的版本,但是推荐选择Python2.7的64位版本。(附件中给出的是python2.7版本)

下载地址:https://www.continuum.io/downloads#linux

3.2 安装,执行命令:

sudo apt-get install libatlas-base-dev

安装完成:

4、安装openCV

之前装opencv3.1.0失败了,原因是OpenCV3.1.0对Cuda8.0兼容性不好。Cuda8.0出来的时间是2016年9月,而OpenCV3.1.0却是去年,OpenCV2.4.13是今年5月,兼容性比OpenCV3.1.0要好,所以选择OpenCV2.4.13。

4.1安装编译工具:

sudoapt-get install build-essential

安装依赖包:

sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-devlibavformat-dev libswscale-dev
sudo apt-get install build-essential cmakelibgtk2.0-dev pkg-config python-dev python-numpy libavcodec-dev libavformat-devlibswscale-dev

安装可选包:

sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-devlibpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

4.2 使用wget下载opencv源码(或者直接用附件给的):

sudo apt-get install wget
sudo wget https://github.com/Itseez/opencv/archive/2.4.13.zip

4.3 解压ZIP源码文件:

sudo apt-get install unzip
sudo unzip 2.4.13.zip

4.4 进入源码目录,创建release目录:

cd opencv-2.4.13
(sudo)mkdir release  

 (如果用mkdir release提示权限不够加上sudo试试)

4.5 开始编译:

(sudo)cmake . 

 (‘cmake+空格+.’ 先试试cmake .指令,如果有错误试试sudo cmake .)

sudo make 
sudo make install
sudo /bin/bash –c
sudo ldconfig

4.6 配置环境:

4.6.1 将opencv的库加入到路径,从而让系统可以找到,执行命令:

sudo gedit /etc/ld.so.conf.d/opencv.conf

末尾加入

/usr/local/lib

保存退出

sudo ldconfig

使配置生效

4.6.2 设置opencv的环境变量,执行命令:

sudo gedit /etc/bash.bashrc

末尾加入

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig

export PKG_CONFIG_PATH

保存退出

sudo source /etc/bash.bashrc  #使配置生效
sudo updatedb #更新database

4.7 验证安装是否成功:

对opencv的sample进行编译并运行,依次执行如下代码

cd opencv-2.4.13/samples/c  

(sudo)./build_all.sh

    (如果用./build_all.sh有错加上sudo试试)

./facedetect--cascade="/usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml"--scale=1.5 lena.jpg

出现lena图片就表示成功!

4.8查看版本:

pkg-config--modversion opencv

安装若报以下错误(第一次在ubuntu14.04安装有这个错误,在16.04没有此错误):

CMakeError at cuda_compile_generated_matrix_operations.cu.o.cmake:206 (message):

Errorgenerating

/home/yy/opencv-2.4.9/build/modules/core/CMakeFiles/cuda_compile.dir/__/dynamicuda/src/cuda/./cuda_compile_generated_matrix_operations.cu.o

make[2]:***[modules/core/CMakeFiles/cuda_compile.dir/__/dynamicuda/src/cuda/./cuda_compile_generated_matrix_operations.cu.o]错误 1

make[1]:*** [modules/core/CMakeFiles/opencv_core.dir/all]错误 2

make: ***[all] 错误 2

 

解决办法:指明GPU的架构,一般的都为开普勒架构。也就是在cmake 命令添加:CUDA_GENERATION=Kepler

执行命令:

cmake-D CMAKE_BUILD_TYPE=bulid -D CMAKE_INSTALL_PREFIX=/usr/local -DCUDA_GENERATION=Kepler ..

即可解决!

OpenCV安装完成!

5、caffe安装配置

5.1 下载(或者直接用附件中给出的):

github下载地址:https://github.com/BVLC/caffe 

网盘下载地址:https://pan.baidu.com/s/1bpqsnZD

5.2 Makefile.config配置:

Makefile.config.example.这个文件是官方给出了编译的“模板”,我们可以直接拿过来修改一下就行。

5.2.1 复制下面的命令把名字改为Makefile.config。执行命令:

sudo cp Makefile.config.example Makefile.config

你会发现下面多了一个Makefile.config的文件

5.2.2 编辑Makefile.config文件,执行命令:

sudo gedit Makefile.config

然后根据个人情况修改文件:

1、若使用cudnn,则将#USE_CUDNN := 1修改成: USE_CUDNN := 1 (就是去掉注释的‘#’号)

2、若使用的opencv版本是2的,则将#OPENCV_VERSION := 3 修改为:OPENCV_VERSION := 2

3、若要使用python来编写layer,则将#WITH_PYTHON_LAYER := 1修改为WITH_PYTHON_LAYER := 1

4、要是你是用的anaconda的话(这个教程用的是anaconda,直接修改吧),还需要改一些地方:

把之前的PYTHON_INCLUDE加上注释,如图,把ANACONDA_HOME以及下面的PYTHON_INCLUDE的注释都去掉并修改anaconda的版本,改为如图的样子。注意:ANACONDA_HOME后面是anaconda的安装位置,根据自己的情况不同而不同,按照我给的安装包应该是anaconda2。其中$(HOME)就是你的家目录。

 

5、重要 :

将# Whatever else you find you need goeshere.下面的

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

5.3 修改makefile文件:

5.3.1 打开makefile文件,执行命令:

sudo gedit Makefile

5.3.2 编辑makefile文件:

将(大概409行):

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

改为:

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

在Makefile文件的第大概181行,将

LIBRARIES += glog gflags protobufboost_system boost_filesystem m hdf5_hl hdf5

改为:

LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial 
 

5.4 编辑/usr/local/cuda/include/host_config.h,执行命令:

sudo subl/usr/local/cuda/include/host_config.h

将其中的第115行注释掉,即:

#error-- unsupported GNU version! gccversions later than 5 are not supported!

改为:

//#error-- unsupported GNU version! gccversions later than 5 are not supported!

5.5 编译:

5.5.1 先安装编译需要的库(貌似都有,保险起见都装一遍吧),执行命令:

sudo apt-get install libatlas-base-dev

sudo apt-get install libprotobuf-dev 
sudo apt-get install libprotobuf-dev 
sudo apt-get install libsnappy-dev
sudo apt-get install libopencv-dev
sudo apt-get install libboost-all-dev
sudo apt-get install libhdf5-serial-dev 
sudo apt-get install libgflags-dev
sudo apt-get install libgoogle-glog-dev 
sudo apt-get install liblmdb-dev
sudo apt-get install protobuf-compiler
sudo apt-get install cmake

5.5.2 开始编译,执行命令:

sudo make all -j8

编译完成,如图。

5.5.3 进行测试,执行命令:

sudo make test

sudo make runtest
sudo make pycaffe
cd python
sudo python
import caffe

如果不报错,就说明安装成功。


可能会有import skimage.io ImportError: Nomodule named skimage.io这样的报错。

解决方法是:

(1)

easy_install scikit-image
pip install scikit-image 

(2)

sudo pip install scikit-image

我装的时候是第二种方法解决的。

Caffe安装完成!

 

参考网站:

http://blog.csdn.net/leijiezhang/article/details/53688157

http://blog.csdn.net/c406495762/article/details/62896035

http://blog.csdn.net/u011557212/article/details/54706966?utm_source=itdadao&utm_medium=referral

http://blog.csdn.net/xierhacker/article/details/53035989

http://blog.csdn.net/autocyz/article/details/52299889

http://www.linuxidc.com/Linux/2015-07/120449.htm

http://m.blog.csdn.net/zouyu1746430162/article/details/53393393




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值