最近,使用新采购的gtx1080显卡,需要使用cudnn-v5,但是在rbgirshick大神最初的py-faster-rcnn工程上,默认使用的是cudnn-v4,如果直接使用cudnn-v5编译faster rcnn里的caffe会报以下错误:
In file included from ./include/caffe/util/cudnn.hpp:5:0, from ./include/caffe/util/device_alternate.hpp:40, from ./include/caffe/common.hpp:19, from src/caffe/data_reader.cpp:6: /usr/local/cuda/include/cudnn.h:799:27: note: declared here cudnnStatus_t CUDNNWINAPI cudnnSetPooling2dDescriptor(原因是在cudnn v5中修改了cudnnStatus_t CUDNNWINAPI cudnnActivationBackward等函数接口,而旧版的caffe中(例如faster rcnn里的caffe)仍然使用原来的调用方式。下面使用最新版本的caffe里面的部分文件对faster rcnn文件进行替换,具体方法如下:
cp caffe/inlude/caffe/layers/cudnn_* caffe-fast-rcnn/include/caffe/layers/ cp caffe/src/caffe/layers/cudnn_* caffe-fast-rcnn/src/caffe/layers/ cp caffe/include/caffe/util/cudnn.hpp caffe-fast-rcnn/include/caffe/util/按照这个修改后,就可以编译通过。
这里给出我修改好的py-faster-rcnn在github上的链接,不想亲自修改或者怕出错的可以直接下载。