(一)faster-rcnn 配置踩坑集合:编译caffe-fast-rcnn

准备跑一下faster-rcnn的demo,参考了这篇博客,测试过程中出现一些问题,记下来方便查询。

**

一,cudnn版本不匹配(不支持)相关报错。

**

  1. 编译caffe-fast-rcnn,因为我用的CUDA10版本,CUDNN为7。相比于rbg的原版py-faster-rcnn内的caffe来说,版本新了很多,所以会出现CUDNN相关的报错,解决办法是用新版的caffe里的cudnn相关文件替换py-faster-rcnn内的caffe的对应文件。需要替换的文件如下:
  include/caffe/layers/cudnn_relu_layer.hpp, 
  src/caffe/layers/cudnn_relu_layer.cpp,  
  src/caffe/layers/cudnn_relu_layer.cu
  
  include/caffe/layers/cudnn_sigmoid_layer.hpp, 
  src/caffe/layers/cudnn_sigmoid_layer.cpp,  
  src/caffe/layers/cudnn_sigmoid_layer.cu
  
  include/caffe/layers/cudnn_tanh_layer.hpp,  
  src/caffe/layers/cudnn_tanh_layer.cpp, 
  src/caffe/layers/cudnn_tanh_layer.cu
  
以及:

include/caffe/util/cudnn.hpp

此外,还需改py-faster-rcnn/caffe-fast-rcnn 中的 src/caffe/layers/cudnn_conv_layer.cu文件中的以下地方:

  cudnnConvolutionBackwardData_v3 
  替换为 
  cudnnConvolutionBackwardData
  
  cudnnConvolutionBackwardFilter_v3 
  替换为 
  cudnnConvolutionBackwardFilter

二,proto相关问题

./include/caffe/util/cudnn.hpp:8:34: fatal error: caffe/proto/caffe.pb.h: No such file or directory

重新生成caffe.pb.h:
解决方法: 用protoc从caffe/src/caffe/proto/caffe.proto生成caffe.pb.h和caffe.pb.cc
cd 到 ./src/caffe/proto 文件夹后
语句: protoc --cpp_out=/home/path/to/caffe/include/caffe/ caffe.proto
注意:caffe.proto前面有空格
参考这里

二,链接库问题


问题描述: error while loading shared libraries: libcudart.so.10.0: cannot open shared object file: No such file or directory

解决办法: 确认/etc/profile中的路径包含了cuda10.0的安装路径及相应的库文件

export PATH=$PATH:/usr/local/cuda-10.0/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-10.0/lib64
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda-10.0/lib64

生效:
source /etc/profile

使配置文件生效,再次执行。
若仍提示相同的错误,则执行以下命令,将相应的库文件复制到/usr/lib

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

10ps. ldconfig命令是一个动态链接库管理命令,是为了让动态链接库为系统共享

重新编译:
make clean
make all -j8
make pycaffe

**
问题描述:

ImportError: libcaffe.so.1.0.0-rc3: cannot open shared object file: No such file or directory

原因分析:
因为编译好了caffe-fast-rcnn后,没有export 编译好的caffe-fast-rcnn/.build_release/lib路径,导致找不到该路径下的一些动态链接库,如 libcaffe.so.1.0.0-rc3
解决办法:
临时方案:

export LD_LIBRARY_PATH=/home/path/to/caffe-fast-rcnn/.build_release/lib:$LD_LIBRARY_PATH

如果一直要使用这个caffe-fast-rcnn,那么也可以写到~/.bashrc里:

sudo vim ~/.bashrc
export LD_LIBRARY_PATH=/home/wangshun/caffe/.build_release/lib:$LD_LIBRARY_PATH
source ~/.bashrc

三,caffe python接口打不开,找不到caffe模块

**
问题描述:

>>>import caffe  Traceback (most recent call last):  
>File "<stdin>", line 1, in <module>  ImportError: No module named caffe

解决思路
基本思路是把caffe中的python导入到解释器中
解决方法
放到配置文件中,可以永久有效果,命令操作如下:
A.把环境变量路径放到 ~/.bashrc文件中,打开文件

sudo vim ~/.bashrc 

在文件中写入:

export PYTHONPATH=~/caffe/python:$PYTHONPATH  

生效:

source ~/.bashrc  

四,python版本不同导致的错误

问题:

指令:

cd $FRCN_ROOT
./tools/demo.py

问题:

File “demo.py”, line 137
print ‘\n\nLoaded network {?}’.format(caffemodel)
^
SyntaxError: invalid syntax

解决:

python3的环境下
修改print ‘\n\nLoaded network {?}’.format(caffemodel)为
print (’\n\nLoaded network {?}’.format(caffemodel))

或者,修改当前用户的~/.bashrc,使用/usr/bin/下的 python2.7:

vi ~/.bashrc
添加:
export PATH="/usr/bin:$PATH"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值