py-faster-rcnn +cudnn V5


轉載自http://blog.csdn.net/u010733679/article/details/52221404,經過實際操作,采用了第二種手動替換代碼文件、修改個別函數名的方式,成功編譯。

---- 原文 -----

faster rcnn 代碼默認是使用的cudnn v4, 但是為了體驗最新的v5, 或者使用GTX1080 ,我們編譯faster rcnn的時候就會報錯:

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(

為此提供2種解決方案:

(1)取自github @manipopopo

cd caffe-fast-rcnn
Git remote add caffe https://github.com/BVLC/caffe.git
git fetch caffe
git merge caffe/master
Remove self_.attr("phase") = static_cast (this->phase_); from include/caffe/layers/python_layer.hpp after merging.

(2)手動修改文件,參考了卜居大神的博客 http://blog.csdn.net/kkk584520/article/details/51163564
方案1簡單方便,但是當我們編譯的是其他人修改過得源碼,可能就會出錯。方案2 步驟如下:

  1. 用最新caffe源碼的以下文件替換掉faster rcnn 的對應文件

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

  1. 用caffe源碼中的這個文件替換掉faster rcnn 對應文件

include/caffe/util/cudnn.hpp

  1. 將 faster rcnn 中的 src/caffe/layers/cudnn_conv_layer.cu 文件中的所有

cudnnConvolutionBackwardData_v3 函數名替換為 cudnnConvolutionBackwardData
cudnnConvolutionBackwardFilter_v3函數名替換為 cudnnConvolutionBackwardFilter


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM