Shuen_Lyu

路漫漫其修远兮 吾将上下而求索

Ubuntu16.04+GT720M + Cuda8.0+py-faster-rcnn(caffe)

Ubuntu16.04 + GT 720M + Cuda8.0+ Py-faster-rcnn(caffe)

Cuda8.0 安装

cuda 的安装其实挺简单的,有两种安装方法,一种使用deb文件,另一种是.run 文件,个人建议用deb文件安装,相对方便一些。

1. 下载安装 cuda8.0

下载
可以从官方网站上下载 : cuda 安装包下载
我用Googledrive分享deb的文件,国内的小伙伴可能下载不了,建议直接去官网下载: cuda8.0 deb 文件网络安装版

安装
此方法的cuda8.0 (对其他版本的cuda也适用)比较简单,三行命令就可以解决:

sudo dpkg -i cuda-repo-ubuntu1604_8.0.44-1_amd64.deb
sudo apt-get update
sudo apt-get install cuda

2. 安装 cudnn 库 (optional)
cudnn(cuda deep neural networks) 其实可以使GPU更快运算的库,尤其是对深度神经网络. 但是它对GPU的计算能力(compute capability)有一定的要求,至少是3.0。由于GT 720M的计算能力是2.1,所以它不支持cudnn。顺便在这链接查询GPU计算能力的链接:NVIDIA GPU 列表。

你可以根据列表了解NVIDIA GPU的类型以及对应的计算能力,来确定你的GPU是否支持cudnn。

cuda的安装和cudnn并没有什么关系,在这提一下后面编译caffe的时候会用到。

cudnn 下载

从官方网站下载:cudnn下载官网
用下面的命令配置cudnn:

tar zxvf cudnn-7.5-linux-x64-v5.1.tgz
cd cuda
sudo cp include/cudnn.h /usr/local/include/
sudo cp lib64/libcudnn* /usr/local/lib/

3. 重启电脑,验证cuda是否安装成功
验证cuda是否安装成功其实很简单,用 nvidia-smi 就可以搞定,如果输入 nvidia-smi,能够得到如下的 图,说明cuda已经成功安装了 ,但是切记在验证cuda是否安装成功之前必须要重启电脑,否则会报错。

nvidia-smi

nvidia-smi.png

卸载cuda 并重新安装

如果安装不成功,或者你想卸载旧版本,升新版本。 你需要先彻底删除和cuda相关的文件,用下面的命令删除:

sudo apt-get remove –purge nvidia-*

再重新安装cuda。

Py-Faster-RCNN(Caffe)的安装

py-faster-rcnn的安装所需要做的工作其实主要是关于caffe的编译。

step 1. 安装常用的dependencies

sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler libhdf5-dev

sudo apt-get install –no-install-recommends libboost-all-dev
sudo apt-get install libatlas-base-dev
sudo apt-get install python-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

step 2. 安装 Cython, easydict, opencv

这三个库一定要记得安装,否则会报错

sudo pip install cython
sudo pip install easydict
sudo apt-get install python-opencv

step 3. 编译 Caffe for py-faster-rcnn

PS: 单独编译caffe 和在py-faster-rcnn文件夹里面编译caffe基本上是一样的,所以在这的编译也可以用来单独编译caffe。

在这分享两个链接:rbgirshick 大神的py-faster-rcnn
另外一个是关于caffe的:Caffe

从github上面clone整个目录:

git clone —recursive https://github.com/rbgirshick/py-faster-rcnn.git

PS : —recursive 是用来caffe-fast-rcnn (也就是caffe branch)的,这个必须要加上,否则此文件夹为空

step 4. 安装Python所需要的dependencies

cd py-faster-rcnn/caffe-fast-rcnn/python

在终端(Termianl)执行下面的命令:

for i in `cat requirements.txt`;do sudo pip install $i;done
PS: 执行上面的命令,要记得不要落下sudo,否则可能会报错

在 /py-faster-rcnn/lib directory 目录下执行make, 会出现如下结果:
这里写图片描述

step 5. Compile caffe in caffe-fast-rcnn folder

cp Makefile.config.example Makefile.config
vim Makefile.config

注释掉 WITH_PYTHON_LAYER := 1
注释掉 `USE_CUDNN := 1行 如果你的计算机的计算能力能够支持cudnn ,由于我的pc不支持cudnn,所以我在这没有注释掉,这不影响使用cuda。

Add the following lines in Makefile.config
不然编译的时候会报错,之前在Ubuntu14.04LTS上没有遇到这个问题,不知为何在ubuntu16.04上会有,anyway,如果不加这两行,会出hdf5.h找不到的错误,还有其他的错误,总之,加上就对了。

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/hdf5/serial/

然后在py-faster-rcnn/caffe-fast-rcnn/:目录下编译caffe:

$ make all -j4(or make all -j8) #-j4或者-j8是根据你电脑的核数说的,如果你的CPU是4核的,用-j4,如果是8核的,用-j8编译会快一些
$ make test
$make runtest

PS:在make test的时候可能会遇见关于 test_smooth_L1_loss_layer.cpp 的错误,给此文件重命名为test_smooth_L1_loss_layer.cpp.orig 会解决问题

mv test_smooth_L1_loss_layer.cpp test_smooth_L1_loss_layer.cpp.orig

step 6. Make pycaffe

py-faster-rcnn/caffe-fast-rcnn/目录下执行 make pycaffe
如果不出现错误,或者得到:

make : Nothing to be done for ‘pycaffe’

说明make pycaffe 成功

到此,所有的准备工作已经昨晚,现在下载model并测试。

测试

Step1. 下载model

在py-faster-rcnn/data/scripts/目录下执行下面命令得到所需要的model。

bash fetch_faster_rcnn_models.sh
bash fetch_imagenet_models.sh

Step 2. 测试
在py-faster-rcnn/tools/ 目录下执行:

python demo.py —net zf

得到测试结果如下:

这里写图片描述
这里写图片描述

到此,测试结束!

安装的过程可能会碰到很多的问题,需要特别注意的点我已经在文章中指出,安装时需注意~

问题总结:

问题1:如果在编译的过程出现关于hdf5.h的问题,首先看看你是不是在Makefile.config修改了下面两行(红色标注的是需要添加的):

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

问题2: caffe版本的问题

我在编译的时候出现了下面的错误:
make: *** [.build_release/src/caffe/parallel.o] Error 1原因可能是我使用了cudnnv5的版本,caffe-fast-rcnn的版本目前还不支持,所以我们的解决办法是merge caffecaffe-fast-rcnn

$cd caffe-fast-rcnn
$git remote add caffe https://github.com/BVLC/caffe.git
$git fetch caffe
$git merge caffe/master

并且把下面这一行给删除掉:

self_.attr(“phase”) = static_cast(this->phase_);

/caffe-fast-rcnn/include/caffe/layers/python_layer.hpp

问题3:使用opencv3 版本的小伙伴,在编译之前记得在Makefile.config里面修改下面两行:

# Uncomment if you’re using OpenCV 3
# OPENCV_VERSION := 3

把第二行给注释掉(去掉#号)。

问题4:make test的时候出现关于test_smooth_L1_loss_layer.cpp它的错误,执行下面命令解决此问题mv test_smooth_L1_loss_layer.cpp test_smooth_L1_loss_layer.cpp.orig

问题5:make runtest时出现locale::facet::_S_create_c_locale name not valid的错误。
设置‘LC_ALL’的环境变量,执行下面的语句export LC_ALL="en_US.UTF-8"

问题6:执行demo.py文件时如遇到下面问题:

F1125 06:19:12.150683 8945 roi_pooling_layer.cu:91] Check failed: error == cudaSuccess (8 vs. 0) invalid device function
*** Check failure stack trace: ***
Aborted (core dumped)

修改../lib/fast_rcnn/config.py第205行,把__C.USE_GPU_NMS = Ture改成__C.USE_GPU_NMS = False即可解决上面问题

在编译caffe的时候遇到很多的问题,希望上面的问题对你有帮助!有任何问题请联系 lyushuen@gmail.com

阅读更多
版权声明:本文为博主Shuen_Lyu原创文章,未经博主允许不得转载。 https://blog.csdn.net/Nicky_lyu/article/details/53181434
个人分类: Py-Faster-RCNN
想对作者说点什么? 我来说一句

faster-rcnn在CUDA8.0环境下编译caffe

2017年08月07日 31.53MB 下载

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

不良信息举报

Ubuntu16.04+GT720M + Cuda8.0+py-faster-rcnn(caffe)

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭