windows7下解决caffe check failed registry.count(type) == 1(0 vs. 1) unknown layer type问题
来源:互联网 发布:北伐战争知乎 编辑:程序博客网 时间:2024/05/16 17:14
在Windows7下调用vs2013生成的Caffe静态库时经常会提示Check failed: registry.count(type) == 1 (0 vs. 1) Unknown layer type的错误,如下图:
这里参考网上资料汇总了几种解决方法:
1. 不使用Caffe的静态库,直接将Caffe的source加入到main工程中;
2. 将Caffe编译成动态库;
3. 使用Caffe静态库,新建一个caffe_layers_registry.hpp头文件,文件中的内容如下(部分代码段,需要将所有的层全部列出来),并且需要将此头文件include到其它文件的上面:
#include "caffe/common.hpp"// may be need to include other head filesnamespace caffe{ extern INSTANTIATE_CLASS(ConvolutionLayer); extern INSTANTIATE_CLASS(PoolingLayer); extern INSTANTIATE_CLASS(ReLULayer); extern INSTANTIATE_CLASS(TanHLayer);// other layer// may be need to REGISTER_LAYER_CREATOR()}
4. 使用Caffe静态库,选中Caffe_Test工程 --> 右键,属性--> 通用属性 --> 引用 --> 添加引用 --> caffe(此caffe工程为caffe静态库工程) --> 项目引用属性 --> 链接库依赖项设置为True,使用库依赖项输入设置为True,如下图:
5. 使用Caffe静态库,在原有src/caffe/net.cpp文件中,添加如下代码段:
#define FORCE_REG(type) \extern LayerRegisterer<float> g_creator_f_##type; \extern LayerRegisterer<double> g_creator_d_##type; \LayerRegisterer<float> *__g_creator_f_##type = &g_creator_f_##type; \LayerRegisterer<double> *__g_creator_d_##type = &g_creator_d_##typeFORCE_REG(TanH);FORCE_REG(Pooling);FORCE_REG(ReLU);FORCE_REG(Sigmoid);FORCE_REG(Softmax);FORCE_REG(Dropout);FORCE_REG(Convolution);FORCE_REG(Deconvolution);FORCE_REG(Concat);FORCE_REG(BNLL);FORCE_REG(Flatten);FORCE_REG(InnerProduct);FORCE_REG(Eltwise);FORCE_REG(Power);FORCE_REG(LRN);FORCE_REG(MemoryData);FORCE_REG(Data);FORCE_REG(Split);FORCE_REG(Reshape);FORCE_REG(Im2col);FORCE_REG(Slice);FORCE_REG(PReLU);FORCE_REG(SoftmaxWithLoss);FORCE_REG(Accuracy);
以上第4种、第5种方法亲自测试过可以正常调用Caffe静态库,但是依赖的Caffe源码比较老,后面会更新到最新版本。
GitHub:https://github.com/fengbingchun/Caffe_Test
0 0
- windows7下解决caffe check failed registry.count(type) == 1(0 vs. 1) unknown layer type问题
- caffe问题Check failed: registry.count(type) == 1 (0 vs. 1) Unknown layer type: Python
- caffe,运行fast-rcnn出现Check failed: registry.count(type) == 1 (0 vs. 1) Unknown layer type: ROIPooling
- Check failed: registry.count(type) == 1 (0 vs. 1) Unknown layer type: Python
- Check failed: registry.count(type) == 1 (0 vs. 1) Unknown layer type: ImageData
- Check failed: registry.count(type) == 1 (0 vs. 1) Unknown layer type: ConvolutionDepthwise
- Check failed: registry.count(type) == 1 (0 vs. 1) Unknown layer type
- Check failed: registry.count(type) == 1 (0 vs. 1) Unknown layer type: Python
- Check failed: registry.count(t ype) == 1 (0 vs. 1) Unknown layer type
- Check failed: registry.count(t ype) == 1 (0 vs. 1) Unknown layer type
- libcaffe Check failed: registry.count(type) == 1 (0 vs. 1) Unknown layer type: Input (known types: )
- 【边喝caffee边Caffe 】(三) Check failed: registry.count(t ype) == 1 (0 vs. 1) Unknown layer type
- 【神经网络与深度学习】Caffe训练执行时爆出的Check failed: registry.count(t ype) == 1 (0 vs. 1) Unknown layer type
- Check failed: registry.count(t ype) == 1 (0 vs. 1) Unknown layer type: Input (known types: Input )
- Check failed: registry.count(t ype) == 1 (0 vs. 1) Unknown layer type: Input (known types: Input )
- Check failed: registry.count(t ype) == 1 (0 vs. 1) Unknown layer type: Input (known types: Input )
- [Caffe]:关于Check failed: registry.count(type) == 0 (1 vs. 0)错误
- caffe: unknown layer type/unknown solver type
- Rest 风格的webservice 调用
- Java程序调用kettle中的job(.kjb)和Trans(.ktr)
- vim + ctags + taglist配置和使用
- iOS 性能调优,成为一名合格iOS程序员必须掌握的技能
- 面向对象
- windows7下解决caffe check failed registry.count(type) == 1(0 vs. 1) unknown layer type问题
- Mysql学习第一章 Java链接Mysql
- web学习之博客小项目(登录注册模块)
- JSP常识
- MyBatis(3):MyBatis的动态SQL
- 扩大Button点击范围
- HTML:Form表单标签的Enctype属性的作用及应用示例介绍
- android开发中论坛帖子图片的排版
- java web开发 交流群