Faster RCNN 搭建问题解决

软硬件环境:
Ubuntu16.04_x64
NVIDIA GTX970
cuda8.0
cuDNN-v6
gcc/g++ 版本5.3
注意:caffe编译出现问题时,一定要定位到第一次出现错误的位置。
**错误1:**依照Github上的说明配置,在sudo make all -j4后出现下面的错误(绿框):
这里写图片描述

原因分析:**Faster R-CNN 和最新的版本cuDNN 版本不兼容问题,py-faster-rcnn的作者在做这个项目时从bvlc/caffe(https://github.com/BVLC/caffe.git)项目创建了一个分支(那时还没有cudnn5),并在这个分支的基础上添加了自己的代码(主要是一些layer),形成现在的版本,就是py-faster-rcnn下的caffe-fast-rcnn。
所以py-faster-rcnn/caffe-fast-rcnn还是只支持cudnn4的代码,编译就会报错。
解决办法:BVLC/caffe目前已经支持cudnn5,要做的就是把BVLC/caffe的最新版本代码合并到py-faster-rcnn/caffe-fast-rcnn:
(1)git版本合并

cd caffe-fast-rcnn
//将BLVC/caffe添加为远程仓库,命名为caffe
git remote add caffe https://github.com/BVLC/caffe.git
//获取BLVC/caffe代码
git fetch caffe
// 将BLVC/caffe的master分支合并到当前分支
// -X theirs 指定在合并遇到冲突时以BLVC/caffe版本为主
git merge -X theirs caffe/master

执行上述命令可能出现下列问题
这里写图片描述
解决办法:
直接执行一遍下面的命令即可,也可以换成你自己的帐号和邮箱,执行完之后重新执行git merge -X theirs caffe/master命令即可

git config --global user.name "John Doe"
git config --global user.email johndoe@example.com

执行git merge -X theirs caffe/master会出现下面的界面要求输入注释信息: 不必输入任何内容,直接按Ctrl + X 离开
这里写图片描述

提示是否存储更动过的缓冲区,输入Y ,ENTER
这里写图片描述

要求写入的文件名:$MERGE_MSG,直接ENTER;
这里写图片描述

到此,就完成了分支合并过程。

(2)修改python_layer.hp(相当重要否则caffe编译没问题,但是运行demo.py会报错)
打开caffe-fast-rcnn/include/caffe/layers/python_layer.hp,将self_.attr("phase") = static_cast<int>(this->phase_);这一行(line29)删除 或者注释掉。如下图
这里写图片描述

参考链接:http://blog.csdn.net/10km/article/details/62418583

更新的版本的:
cuda8.0
cuDNN-v6
经过合并后仍然会报相同的错误:
解决办法:
因为一般配置caffe环境时用的都是最新版本的caffe。
将之前编译通过的caffe中的源码中的一个cudnn.hpp文件拷贝到出问题的caffe的相应位置,重新编译就能解决。

错误2:sudo make all -j4命令后出现如下错误。
这里写图片描述
**原因分析:**一开始以为是Protobuf 但是进行重装后依然出现这个问题。后来分析,因为刚开始以配置Faster R-CNN时候,网上资料说Faster R-CNN只支持4.9版本的gcc/g++ 故对gcc/g++进行了5.4到4.9的降级。后来升级了caffe,新版caffe可能对低版本的gcc/g++支持有问题。故而出现了这个问题。
**解决办法:**升级gcc/g++,本人是从4.9升级到了5.3。gcc/g++升级方法参考:
http://blog.csdn.net/ytusdc/article/details/77980915

**错误3:**错误描述
这里写图片描述
**原因分析:**因为错误2的缘故,对Protobuf反复进行了卸载和安装,后面可能是没有安装成功导致Protobuf缺失
**解决办法:**重装Protobuf
下面的命令,安装了许多其他的依赖库,无所谓,这都是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 

错误4: Check failed: error == cudaSuccess (30 vs. 0) unknown error
上图
这里写图片描述

这里写图片描述

原因分析: 执行命令时./tools/demo.py,用的不是管理员权限
解决办法:

sudo ./tools/demo.py

错误5: 运行demo.py 的时候了,遇到了以下问题:
libcudart.so.8.0: cannot open shared object file: No such file or directory

解决办法:

解决办法是将一些文件复制到/usr/local/lib文件夹下:

sudo cp /usr/local/cuda-8.0/lib64/libcudart.so.8.0 /usr/local/lib/libcudart.so.8.0 && sudo ldconfig
sudo cp /usr/local/cuda-8.0/lib64/libcublas.so.8.0 /usr/local/lib/libcublas.so.8.0 && sudo ldconfig
sudo cp /usr/local/cuda-8.0/lib64/libcurand.so.8.0 /usr/local/lib/libcurand.so.8.0 && sudo ldconfig

错误6: ImportError: No module named skimage.io
解决办法:
可能是我们没有安装所谓的skimage.io 模块,所以可以用以下的命令来安装:
sudo pip install scikit-image
上图
这里写图片描述
错误7: ImportError: No module named _tkinter, please install the python-tk
这是由于python的版本没有包含tkinter的模块,只需要把tk的package安装就可以了。 一般在linux才出现,windows版本一般已经包含了tkinter模块。
apt-get install python-tk
上图
这里写图片描述
错误8:ImportError: No module named easydict
解决:sudo pip install easydict
上图
这里写图片描述
错误9: ImportError: No module named cv2
解决:sudo apt-get install python-opencv
上图
这里写图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值