文章出處

轉載自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


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()