caffe,运行fast-rcnn出现Check failed: registry.count(type) == 1 (0 vs. 1) Unknown layer type: ROIPooling

1 篇文章 0 订阅
1 篇文章 0 订阅

win10+VS2013+caffe

fast-RCNN 的demo

win10+vs2013+caffe运行fast-rcnn的demo出现很多问题,看来网上很多给的方法都没有解决,最后自己看代码解决,希望能给后续的人帮助。其中出现Check failed: registry.count(type) == 1 (0 vs. 1) Unknown layer type: ROIPooling 网上的回答没有解决我的问题,就自己调了一下。

运行fast-rcnn时需要下载新的caffe分支,当然也可以自己重新进行编译,我选择的是在自己的caffe上重新编译,添加了caffe.mamaged项目,我自己下载的版本没有roi_pooling_layer.cpp和roi_pooling_layer.cu,当然也没有对应的roi_pooling_layer.hpp。所以我自己在github上可以找到这几个文件然后放在caffe_root/src/caffe/layers下。中间还出了很多小问题,所以不建议用这种方法,可在https://github.com/Microsoft/caffe下载专用fast-rcnn的caffe,根据之前编译caffe下windows的文件,重新生成一次。
然后按照流程运行demo发现出了这个Check failed: registry.count(type) == 1 (0 vs. 1) Unknown layer type: ROIPooling,如下图:
这里写图片描述
我在网上找了很久问题的解决方法,发现自己没用,所以决定自己看代码解决,主要原因是专用的caffe包含roi_pooling_layer.cpp和roi_pooling_layer.cu文件,但是windows版本根本没去编译它们,build的情况下没有生成,所以说windows版本啥时候都是坑。caffe的windows的项目所有依赖的文件都在libcaffe这个项目里面,所以我决定从这里入手,打开libcaffe.vcxproj,发现里面果然没有去生成这两个文件,我在157行加入了

<ClCompile Include="..\..\src\caffe\layers\roi_pooling_layer.cpp" />

在265行加入了

<ClInclude Include="..\..\include\caffe\layers\roi_pooling_layer.hpp" />

在344行加入了

<CudaCompile Include="..\..\src\caffe\layers\roi_pooling_layer.cu" />

同时修改libcaffe.vcxproj.filters文件,在291行加入

<ClCompile Include="..\..\src\caffe\layers\roi_pooling_layer.cpp">
<Filter>src\layers</Filter>
</ClCompile>

在569行加入了

<ClInclude Include="..\..\include\caffe\layers\roi_pooling_layer.hpp">
<Filter>include\layers</Filter>
</ClInclude>

在781行加入了

<CudaCompile Include="..\..\src\caffe\layers\roi_pooling_layer.cu">
<Filter>cu\layers</Filter>
</CudaCompile>

然后重新build下caffe-windows里的项目。在进行fast-RCNN,错误消失。

  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 18
    评论
根据引用和引用的信息,报错"collect2.exe: error: ld returned 1 exit status"一般是链接错误导致的。这个错误通常是由于缺少库文件或者库文件路径不正确引起的。解决该问题的方法是修改Makefile.config文件,确保库文件路径正确,并确保所有需要的库文件都在相应的路径下。另外,还需检查编译器的配置是否正确,包括选择正确的编译器和设置正确的编译选项。 根据引用的信息,报错"collect2.exe: error: ld returned 1 exit status"还可能是由于库文件目录中缺少所需的库文件引起的。解决该问题的方法是将缺少的库文件添加到库文件路径中。 综上所述,解决报错"collect2.exe: error: ld returned 1 exit status"的方法包括: . 确保Makefile.config文件中的库文件路径正确,并检查所有需要的库文件是否在相应的路径下。 2. 检查编译器的配置是否正确,包括选择正确的编译器和设置正确的编译选项。 3. 检查库文件目录中是否缺少所需的库文件,如果缺少,将其添加到库文件路径中。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [个人安装caffe的教训记录.txt](https://download.csdn.net/download/awesomeeedd/12185243)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [collect2.exe: error: ld returned 1 exit status解决办法](https://blog.csdn.net/weixin_47597129/article/details/125783830)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [warning::-1: error: cannot find -lCartDlld collect2.exe:-1: error: error: ld returned 1 exit status](https://blog.csdn.net/aoxuestudy/article/details/124188848)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值