您的位置:首页 > Web前端

Ubuntu16.04+caffe+CUDA8.0+cuDNN v5+opencv3.1.0编译

2018-03-12 17:37 621 查看

Ubuntu16.04+caffe+CUDA8.0+cuDNN v5+opencv3.1.0编译

这篇caffe安装非常不错,但是里面因为时间的原因,有些操作已经不能用了而且原文涉及到一些小问题,小编我是生怕之后自己的ubunutu崩掉,就将其错误改正,重新写了写。还有就是看得多了,容易只看代码,将代码上下的操作老师忘记,所以特此将重点红色标注。并将自己的makefile文件和makefile.config以及ippicv_linux_20151201.tgz链接良心附上: https://pan.baidu.com/s/1LoT0UCadm3mkLYBJo6hOSQ  密码: 84dc

1.安装Ubuntu16.04
 Win10下UEFI环境安装Ubuntu 16.04双系统教程,亲测有效 安装ubuntu双系统。
在安装完之后,搜索-软件和更新,更新服务源,我选的阿里的服务器。
 如果你是初次接触linux系统或ubuntu系统,建议你在装好Ubuntu系统后不要急着进行下一步,可以了解学习一下linux系统基础和基本指令 linux基础和命令
2.安装NVIDIA显卡驱动
    (1) 安装NVIDIA
    直接终端下输出以下命令,不需要禁用开源驱动和关闭lightdm。
    如果你选择安装CUDA(本人主要是用于caffe),可以选择直接安装CUDA,不需要安装NVIDIA驱动(CUDA中自带NVIDIA驱动)。但是要选择直接deb安装,不要选择run安装,否则会出现无限登陆的问题。之后重启电脑,使驱动生效。sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install nvidia-384     (2) 关闭安全模式
    开机长按ESC,之后进bios选项,选择secure里面的securty boot修改为disable。 然后选择ubuntu系统进入之后,在终端下输出:nvidia-smi会显示你的显卡相关信息,证明你的NVIDIA驱动已经安装好了。也可以下搜索下搜索 详细信息,可以看到 图形下会显示你的NVIDIA的显卡型号,我的是GeoForce 940MX。











3.安装CUDA8.0
下载的是离线.deb包进行安装 CUDA8.0下载, 官网总是下一半,就失败了,简直“屡试不爽”。这里附上我的链接cuda-repo-ubuntu1604-8-0-local_8.0.44-1_amd64.deb 下载链接: https://pan.baidu.com/s/18AXEM3CouQKrc-lnIwYYXQ 密码: qevs

下载完成之后,打开命令行终端,进入到.deb包的下载目录下,依次执行以下命令,其中第一个指令中的.deb包就是自己下载的.deb包名。
sudo dpkg -i cuda-repo-ubuntu1604-8-0-local_8.0.44-1_amd64.deb
sudo apt-get update
sudo apt-get install cuda
安装完cuda后必须重启电脑,才能让显卡配置生效!
4.安装cuDNN v5
先说明一下,cuDNN v4是不支持ssd的,并且用v4编译faster r-cnn后测试score时结果不对,faster r-cnn默认是v3,通过替换和修改少量文件即可使用v5,因此在这里强烈建议大家使用v5版本。到NVIDIA官网下载cuDNN,进去要先用邮箱注册一下,填个问卷,很快的。选择cuDNN v5(May 27,2016),for CUDA 8.0下载,官网下载地址: cuDNN v5下载



下载之后进入到下载文件所在文件夹,解压,进入cuda文件夹下,并执行相关文件的拷贝:
tar -zxvf cudnn-8.0-linux-x64-v5.0-ga.tgz(或你的版本对应的压缩包)
cd cuda
sudo cp lib64/lib* /usr/local/cuda/lib64/
sudo cp include/cudnn.h /usr/local/cuda/include/
然后更新软连接:
cd /usr/local/cuda/lib64/
sudo chmod +r libcudnn.so.5.0.5(或你自己的版本对应的)
sudo ln -sf libcudnn.so.5.0.5 libcudnn.so.5
sudo ln -sf libcudnn.so.5 libcudnn.so
sudo ldconfig
5.添加环境变量
编辑计算机文件夹下的/etc/profile(可以在终端使用以下命令行打开):
sudo gedit /etc/profile
在文件末尾加入CUDA环境变量,保存。
PATH=/usr/local/cuda/bin:$PATH
export PATH
保存后在终端执行以下命令使其生效:
source /etc/profile
然后,进入到/etc/ld.so.conf.d/文件夹下,执行以下命令,新建了一个cuda.conf文件
sudo gedit cuda.conf
在文件中写入并保存:
/usr/local/cuda/lib64
保存后使其生效:
sudo ldconfig
6.Build CUDA Sample
进入usr/local/cuda/samples,然后build samples,命令如下:
sudo make all -j4(4表示采用4核,当然如果你是8核你也可以用8)
继续进入到samples/bin/x86_64/linux/release目录下,在终端执行查询命令:
./deviceQuery
如果返回你电脑显卡信息,结尾有Result=PASS,则安装成功,否则,建议重启电脑再尝试查询命令。
7.安装caffe的基本依赖库
首先安装以下软件包括python,不过好像Ubuntu16.04已经自带了。
sudo apt-get install git
sudo apt-get install build-essential
sudo apt-get install python
然后安装caffe依赖库,建议一个一个装
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler libatlas-base-dev
8.安装opencv3.1.0
原文的opencv安装,以前我安装的时候还能用,现在不行了,特此做更改。

  (1)解压,创建build目录

unzip opencv-3.1.0.zip
cd opencv-3.1.0
mkdir build

  (2)修改opencv源码,使其兼容cuda8.0

vi opencv-3.1.0/modules/cudalegacy/src/graphcuts.cpp
修改如下:



将:
#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER)
改为:
#if !defined(HAVE_CUDA)||defined(CUDA_DISABLER)||(CUDART_VERSION>=8000)

    (3)配置opencv,生成Makefile

cmake -D CMAKE_BUILD_TYPE=RELEASE -D WITH_FFMPEG=ON -D CMAKE_INSTALL_PREFIX=/usr/local ..
如果因为ippicv_linux_20151201.tgz包下载失败而导致Makefile生成失败,可通过手动下载ippicv_linux_20151201.tgz安装包,将其拷贝至 opencv-3.1.0/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e目录内(这里的目录不敢保证,最好使先让系统自己运行一下,自动生成文件夹后,然后再把压缩包放进去),重新执行配置命令即可。

    (4)编译

make -j4
编译过程中如果出现如下错误:
/usr/include/string.h: In function ‘void* __mempcpy_inline(void*, const void*, size_t)’: /usr/include/string.h:652:42: error: ‘memcpy’ was not declared in this scope return (char *) memcpy (__dest, __src, __n) + __n;
这是因为ubuntu的g++版本过高造成的,只需要在opencv-3.1.0目录下的CMakeList.txt 文件的开头加入:
set(CMAKE_CXX_FLAGS “${CMAKE_CXX_FLAGS} -D_FORCE_INLINES”)
添加之后再次进行编译即可。

    (5)安装

sudo make install

    (6)查看版本号

pkg-config --modversion opencv
9.配置caffe的python环境
先下载caffe-master包,下载后解压,进入caffe-master/python文件夹下,然后在终端执行:caffe-master下载
sudo apt-get install python-pip python-dev build-essential
sudo pip install --upgrade pip
sudo pip install -r requirements.txt
为了后面能够使用python绘制caffe的网络模型等可视化操作,执行:
sudo apt-get install graphviz
sudo pip install pydot
然后
make pycaffe
10.编译caffe(强烈建议直接下载我的makefile先试试,不行再说)
进入到caffe-master文件夹下,复制配置文件,终端执行:
cp Makefile.config.example Makefile.config
打开Makefile.config文件,对以下几点去掉注释并修改:
USE_CUDNN := 1
OPENCV_version := 3
USE_OPENCV := 1
USE_LMDB := 1
WITH_PYTHON_LAYER := 1
如果只进行以上修改最后编译会报关于hdf5的错,解决方案参照博客 编译caffe时hdf5报错
解决方案如下,首先在Makefile.config文件大概第85行,找到
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
并修改成
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/
修改后保存,然后再打开Makefile文件,找到大概第173行
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5
并修改成
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial
修改完保存,然后在终端caffe目录下执行编译:
make all -j4
make test -j4
make runtest -j4
如果没有报错,那么恭喜你成功了,如果没有成功,请根据报错内容仔细检查整个过程是否有遗漏,或者百度谷歌报错内容来得到解决方案。
11 绘制caffe网络模型
caffe的python目录下有一个draw_net.py是python绘制caffe网络模型的工具。在终端进入caffe的python目录下,执行:
python draw_net.py ../models/bvlc_alexnet/train_val.prototxt alexnet.png
就会在caffe的python生成alexnet网络模型可视化图像alexnet.png。



参考链接: http://blog.csdn.net/sinat_14916279/article/details/53844963 opencv3安装参考: http://blog.csdn.net/kexinmcu/article/details/53177238
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  caffe 安装
相关文章推荐