【边喝caffee边Caffe 】(三) Check failed: registry.count(t ype) == 1 (0 vs. 1) Unknown layer type
自己建立一个工程,希望调用libcaffe.lib ,各种配置好,也能成功编译,但是运行就会遇到报错
F0519 14:54:12.494139 14504 layer_factory.hpp:77] Check failed: registry.count(t ype) == 1 (0 vs. 1) Unknown layer type: Input (known types: Input )
各种跟踪调试都找不到原因,相同的代码在microsoft版本的caffe里使用就没有问题,自己新建一个项目就出
错。
网上找了一下原因,大概是libcaffe.lib是静态库的方式编译的,有一些东西没法使用,暂时只能肤浅的这么
理解。我试过改成动态库,编译都通不过了。
一些参考方案:
http://stackoverflow.com/questions/30325108/caffe-layer-creation-failure
http://stackoverflow.com/questions/32416226/create-layer-error-at-layer-factory-hpp
https://groups.google.com/forum/#!topic/caffe-users/Py6IwMQvtqo/discussion
尝试了不少,都不怎么给力。
我甚至在github项目下提问
官方答复是只能在解决方案里面新建项目。
当然,最后我找到了一个办法,
一开始没有太看明白这是什么意思。
后来仔细看了一下libcaffe工程的目录结构,发现有个layer目录,里面放的都是各种层,什么ArgMaxLayer,
ScaleLayer,当然也有InputLayer,感觉很有可能问题就出在这些代码里面,仔细阅读input_layer.cpp,果然发现
有一句
INSTANTIATE_CLASS(InputLayer);REGISTER_LAYER_CLASS(Input);
所以解决方案就是,新建一个头文件,例如head.h,将他提示你没有的层的头文件包含进去,在添加类似于
extern INSTANTIATE_CLASS(InputLayer);的这句话
后来发现有的层添加了也会报错,那是因为他们没有类似于REGISTER_LAYER_CLASS(Input);这句话。可以想象,
REGISTER_LAYER_CLASS这句话作用就是注册layer。可以添加进去。
我贴上我的head.h,添加了我使用到的layer
#include "caffe/common.hpp"
#include "caffe/layers/input_layer.hpp"
#include "caffe/layers/inner_product_layer.hpp"
#include "caffe/layers/dropout_layer.hpp"
#include "caffe/layers/conv_layer.hpp"
#include "caffe/layers/relu_layer.hpp"#include "caffe/layers/pooling_layer.hpp"
#include "caffe/layers/lrn_layer.hpp"
#include "caffe/layers/softmax_layer.hpp"namespace caffe
{extern INSTANTIATE_CLASS(InputLayer);extern INSTANTIATE_CLASS(InnerProductLayer);extern INSTANTIATE_CLASS(DropoutLayer);extern INSTANTIATE_CLASS(ConvolutionLayer);REGISTER_LAYER_CLASS(Convolution);extern INSTANTIATE_CLASS(ReLULayer);REGISTER_LAYER_CLASS(ReLU);extern INSTANTIATE_CLASS(PoolingLayer);REGISTER_LAYER_CLASS(Pooling);extern INSTANTIATE_CLASS(LRNLayer);REGISTER_LAYER_CLASS(LRN);extern INSTANTIATE_CLASS(SoftmaxLayer);REGISTER_LAYER_CLASS(Softmax);}
你所使用的layer可能跟我不一样,但是解决方法是一样的,提示哪个layer找不到,就把那个layer添加进来就是
了。
彻底一点的方案是把所有的layer全写进来。
我在添加过程中,之前在每个extern INSTANTIATE_CLASS 后面都添加 REGISTER_LAYER_CLASS,结果报错,说
重复注册。于是删掉了。
所以,如果你以后遇到没有注册的layer,就照上面做就好了,万一遇到重复注册,也应该会举一反三,知道如何解
决,例如把判断重复注册的语句修改一下等等。
【边喝caffee边Caffe 】(三) Check failed: registry.count(t ype) == 1 (0 vs. 1) Unknown layer type相关推荐
- windows7下解决caffe check failed registry.count(type) == 1(0 vs. 1) unknown layer type问题
在Windows7下调用vs2013生成的Caffe静态库时经常会提示Check failed: registry.count(type) == 1 (0 vs. 1) Unknown layer t ...
- Check failed: registry.count(type) == 1 (0 vs. 1) Unknown layer type: Python
参考:http://blog.csdn.net/lanyuxuan100/article/details/70231173 windows:http://blog.csdn.net/birdwcp/a ...
- 【caffe】Check failed: status == CUDNN_STATUS_SUCCESS (4 vs. 0) CUDNN_STATUS_INTERNAL_ERRO
我在matcaffe,pycaffe,以及 tools/caffe ,都碰到: Check failed: status == CUDNN_STATUS_SUCCESS (4 vs. 0) 根本原因是 ...
- 【caffe】 Check failed: error == cudaSuccess (30 vs. 0) unknown error
解决办法 : 加 sudo 用caffe,不报错,那一定要的时假caffe. ubuntu16.04 ,写了一个.py文件调用resnet.caffemodel 来对图片进行分类. 但是在运行时出错, ...
- 训练caffe:registry.count(type) == 0 (1 vs. 0) Solver type Nesterov already registered
命令:./continue-train.sh 内容:../../caffe-master/build/tools/caffe train -gpu=$1 -solver=solver.prototxt ...
- caffe 报错 Check failed: error == cudaSuccess (77 vs. 0) an illegal memory access was encounteredcaffe
caffe 报错 Check failed: error == cudaSuccess (77 vs. 0) an illegal memory access was encountered 训练时候 ...
- caffe报错:Check failed: width <= datum_width (28 vs. 17)
使用caffe建立模型的时候需要转换LMDB格式,但转换完成进行训练的时候却会报错Check failed.这个错误的原因是图片大小不匹配.在之前我一直以为在转换之前要把所有图片大小转换为目标尺寸 ...
- Check failed: error == cudaSuccess (74 vs. 0) misaligned address的解决方法
今天训练网络的时候加入了Deconvolution Layer,结果一运行报Check failed: error == cudaSuccess (74 vs. 0) misaligned addre ...
- faster-rcnn中添加Mask中的RoiAlign层,使回归框更精确( roi_align_layer.cu:240] Check failed: error == cudaSuccess *)
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/e01528/article/details/80265118 具体的操作为什么这样做,可参照: 1. ...
- 解决npm 的 shasum check failed for错误
使用npm安装一些包失败,类似如下报错情况: C:\Program Files\nodejs>npm update npm npm ERR! Windows_NT 10.0.14393 npm ...
最新文章
- LeetCode实战:将有序数组转换为二叉搜索树
- 802.11 Power Save(节电/省电/节能)机制总结
- matlab多项式相乘的法则_卷积计算与多项式乘法
- Leetcode 剑指offer 22. 链表中第k个节点 (每日一题 20210716)
- java圆饼图插件_饼图----插件
- 第三次学JAVA再学不好就吃翔(part50)--String类练习
- 创建型模式——单例模式
- AMD中国:没有对拼多多及其平台上任何店铺授权
- 利用Ajax实现DataGrid无刷新分页(AjaxGrid)【转】
- 文件系统FAT32、NTFS、exFAT的对比
- stl文件unity_Unity导入STL格式模型(二)
- 日常开发中,String类中常用的方法
- 怎么在电脑桌面添加待办便签小助手
- java错误找不到符号怎么办_java错误找不到符号
- 北航单片机李广弟c语言还是汇编,单片机基础备课笔记
- C语言基础之十进制与二进制转换
- 【UE4全反射松耦合框架笔记】第一章 UE4框架基础(下)
- C语言中puts跟printf的区别
- CDR插件开发之CPG插件016 -【实例】在CPG插件中动态导出图像到临时文件夹
- 云服务器怎么采购便宜?云服务器优惠 3 大准则