caffe用c++实现调用模型进行推理(测试),出现"Unknown layer type"的错误

如题,我在windows下,基于happynear的caffe,模仿classification项目,用c++实现调用模型进行推理(测试),但是在进行网络初始化时,出现“Unknown layer type”的错误。

caffe用c++实现调用模型进行推理(测试),出现"Unknown layer type"的错误

为解决这个问题,首先去网上搜索,参考了以下博客:

https://blog.****.net/fangjin_kl/article/details/50936952

https://blog.****.net/fengbingchun/article/details/54286435

但是,不知道什么原因,没有成功。后来,我找到了一个可行的办法。我虽还是没明白其中的原因,但也无大碍。

  • 1、打开caffe.sln解决方案,它包含若干项目,如图:

caffe用c++实现调用模型进行推理(测试),出现"Unknown layer type"的错误

  • 2、找到其中一个项目,比如这里我找的是classification项目,定位该项目文件的路径:

caffe-windows-happynear\windows\classification\classification.vcxproj

  • 3、在caffe-windows-happynear\windows下新建文件夹,比如叫做classification2,复制classification\classification.vcxproj到classification2目录下,取名为classification2.vcxproj
  • 4、回到vs中的caffe.sln解决方案,添加->现有项目,添加classification2.vcxproj

caffe用c++实现调用模型进行推理(测试),出现"Unknown layer type"的错误

caffe用c++实现调用模型进行推理(测试),出现"Unknown layer type"的错误

                                                                caffe用c++实现调用模型进行推理(测试),出现"Unknown layer type"的错误

  • 5、移除项目classification2中的cpp文件(这时的cpp就是classification项目下的classification.cpp),换成你自己的cpp文件。
  • 6、点击生成classification2

caffe用c++实现调用模型进行推理(测试),出现"Unknown layer type"的错误

  • 7、待生成完毕后,将classification2项目设为启动项目,运行。

caffe用c++实现调用模型进行推理(测试),出现"Unknown layer type"的错误

这样应该就不会出现那个问题了。