【边喝caffee边Caffe 】(三) Check failed: registry.count(t ype) == 1 (0 vs. 1) Unknown layer type

2023-11-02

    自己建立一个工程,希望调用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,就照上面做就好了,万一遇到重复注册,也应该会举一反三,知道如何解


决,例如把判断重复注册的语句修改一下等等。





本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【边喝caffee边Caffe 】(三) Check failed: registry.count(t ype) == 1 (0 vs. 1) Unknown layer type 的相关文章

  • 对象检测工具包mmdetection简介、安装及测试代码

    mmdetection是商汤和港中文大学联合开源的基于PyTorch的对象检测工具包 属于香港中文大学多媒体实验室open mmlab项目的一部分 该工具包提供了已公开发表的多种流行的检测组件 通过这些组件的组合可以迅速搭建出各种检测框架
  • 如何高速安装jetson-inference,一步到位,避免踩坑!

    踩了很长时间的坑 终于弄明白怎么高速下载jetson inference 来源 安装jetson inference 自动下载模型 满速下载起飞 解决下载模型被墙问题 奈流云何的博客 CSDN博客 需要将Github的仓库复制到Gitee上
  • 3W字长文总结PyTorch中常用的函数

    quad quad PyTorch基本函数更新 quad q
  • 深度学习中的随机梯度下降(SGD)简介

    随机梯度下降 Stochastic Gradient Descent SGD 是梯度下降算法的一个扩展 机器学习中反复出现的一个问题是好的泛化需要大的训练集 但大的训练集的计算代价也更大 机器学习算法中的代价函数通常可以分解成每个样本的代价
  • GAN网络系列博客(一):用于人脸生成的StyleGAN结构

    目录 简介 基于风格的生成器 生成器的性质 总结 Reference 在未来的一段时间 我会开一个小专题 来介绍下GAN网络的一些经典论文 希望对那些想要入坑的同学提供一点点帮助 考虑到StyleGAN系列论文在相关领域的影响力 我们首先来
  • 笔记︱几款多模态向量检索引擎:Faiss 、milvus、Proxima、vearch、Jina等

    转自 https zhuanlan zhihu com p 364923722 引用文章 7 的开篇 来表示什么是 向量化搜索 人工智能算法可以对物理世界的人 物 场景所产生各种非结构化数据 如语音 图片 视频 语言文字 行为等 进行抽象
  • MLOps极致细节:4. MLFlow Projects 案例介绍(Gitee代码链接)

    MLOps极致细节 4 MLFlow Projects 案例介绍 Gitee代码链接 MLFlow Projects允许我们将代码及其依赖项打包为一个可以在其他平台上以可复制 reproducible 和可重用 reusable 的方式运行
  • 视觉注意力的循环神经网络模型

    我们观察PPT的时候 面对整个场景 不会一下子处理全部场景信息 而会有选择地分配注意力 每次关注不同的区域 然后将信息整合来得到整个的视觉印象 进而指导后面的眼球运动 将感兴趣的东西放在视野中心 每次只处理视野中的部分 忽略视野外区域 这样
  • 【pytorch】迁移学习

    在很多场合中 没有必要从头开始训练整个卷积网络 随机初始化参数 因为没有足够丰富的数据集 而且训练也是非常耗时 耗资源的过程 通常 采用pretrain a ConvNet的方式 然后用ConvNet作为初始化或特征提取器 有两种迁移学习
  • libsvm库简介及使用

    libsvm是基于支持向量机 support vector machine SVM 实现的开源库 由台湾大学林智仁 Chih Jen Lin 教授等开发 它主要用于分类 支持二分类和多分类 和回归 它的License是BSD 3 Claus
  • Mac电脑配置李沐深度学习环境[pytorch版本]使用vscode

    文章目录 第一步 M1芯片安装Pytorch环境 安装Miniforge 创建虚拟环境 安装Pytorch 第二步 下载李沐Jupyter文件 第三步 配置vscode 参考 第一步 M1芯片安装Pytorch环境 安装Miniforge
  • 《动手学深度学习》(七) -- 边界框和锚框

    1 边界框 在目标检测中 我们通常使用边界框 bounding box 来描述对象的空间位置 边界框是矩形的 由矩形左上角的以及右下角的 x x x和 y y y坐标决定 另一种常用的边界框表示方法是边界框中心的
  • 基于Lasagne实现限制玻尔兹曼机(RBM)

    RBM理论部分大家看懂这个图片就差不多了 Lasagne写代码首先要确定层与层 RBM 正向反向过程可以分别当作一个层 权值矩阵互为转置即可 代码 coding utf 8 data format is bc01 written by Ph
  • 深度学习中的验证集和超参数简介

    大多数机器学习算法都有超参数 可以设置来控制算法行为 超参数的值不是通过学习算法本身学习出来的 尽管我们可以设计一个嵌套的学习过程 一个学习算法为另一个学习算法学出最优超参数 在多项式回归示例中 有一个超参数 多项式的次数 作为容量超参数
  • cs231n: How to Train a Neuron Network 如何训练神经网络

    CS231N第六第七课时的一些笔记 如何训练神经网络是一个比较琐碎的事情 所以整理了一下 以后训练Neuron Network的时候可以看一下 Activation Functions ReLu good ELU leaky ReLu no
  • Pytorch Advanced(三) Neural Style Transfer

    神经风格迁移在之前的博客中已经用keras实现过了 比较复杂 keras版本 这里用pytorch重新实现一次 原理图如下 from future import division from torchvision import models
  • 吴恩达老师深度学习视频课笔记:逻辑回归公式推导及C++实现

    逻辑回归 Logistic Regression 是一个二分分类算法 逻辑回归的目标是最小化其预测与训练数据之间的误差 为了训练逻辑回归模型中的参数w和b 需要定义一个成本函数 cost function 成本函数 cost functio
  • 【直观详解】什么是正则化

    转自 https charlesliuyx github io 2017 10 03 E3 80 90 E7 9B B4 E8 A7 82 E8 AF A6 E8 A7 A3 E3 80 91 E4 BB 80 E4 B9 88 E6 98
  • 基于矩阵求解多元线性回归

    多元线性回归法也是深度学习的内容之一 用java实现一下多元线性回归 一元线性回归的公式为 y a x b 多元线性回归的公式与一元线性回归的公式类似 不过是矩阵的形式 可以表示为Y AX b 其中 Y是样本输出的合集 X是样本输入的合集
  • yolov5量化部署(基于openvino和tensorrt)

    yolov5 openvino量化部署 首先 下载YOLOv5源码 安装YOLOv5和OpenVINO的python依赖 git clone https github com ultralytics yolov5 git pip insta

随机推荐

  • 第四季新星计划即将开启,博客之星取消拉票你怎么看?

    catalogue 写在前面 线下创机遇 新星计划 做导师可以得到什么 新星计划跟原力计划有何不同 博客之星新玩法你怎么看 写在前面 哈喽 大家好 我是几何心凉 这是一份全新的专栏 得到CSDN王总的授权 来对于我们每周四的绿萝时间 直达C
  • JAVA的HttpClient问题:The server failed to respond with a valid HTTP response

    Caused by org apache http ProtocolException The server failed to respond with a valid HTTP response 昨天帐前 卒使用java 的HttpCl
  • 微信js-sdk 分享配置报错config:invalid signature?

    缘起 最近做H5关于微信分享的需求的时候 遇到了大坑 由于没使用过js sdk做微信分享 故查阅了很多资料 大多数博主的代码偏差都不大 于是我借鉴了核心写法 我的代码 wechatApi wechatConfigInit 是封装的微信js
  • 【Linux】shell编程之循环语句

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 一 循环语句 二 for循环语句 1 for 语句的结构 2 for语句应用示例 三 while 循环语句 1 while 循环语句结构 2 while语句应用示例
  • Hadoop的Nodes of the cluster界面MemoryTotal为0B

    1 hadoop集群安装部署结束 一键启动 start all sh 2 查看各主从机器上jps进程 jps master ResourceManager NameNode slave1 第二namenode DataNode Second
  • 2021-11-17 尤破金11.19国际黄金今日走势分析及行情预测,黄金原油操作建议

    黄金最新行情分析 黄金消息面解析 周四 11月18日 国际金价冲高回落 因美元指数探底回升 但人们对通货膨胀加剧的担忧不断升温 各国央行最终需要加息以遏制通胀上升的前景 限制了金价下行空间 但金价距离本周创下的6月14日以来高点1877 1
  • SPI、I2C、I2S、UART、GPIO、SDIO、CAN、JTAG的区别及使用方法。

    SPI 全称及由来 SPI接口的全称是 Serial Peripheral Interface 意为串行外围接口 是Motorola首先在其MC68HCXX系列处理器上定义的 使用方法 SPI接口主要应用在EEPROM FLASH 实时时钟
  • 2019大厂Android高级工程师面试题整理+进阶资料

    金三银四 很多同学心里大概都准备着年后找工作或者跳槽 最近有很多同学都在交流群里求大厂面试题 正好我电脑里面有这方面的整理 于是就发上来分享给大家 这些题目是网友去百度 小米 乐视 美团 58 猎豹 360 新浪 搜狐等一线互联网公司面试被
  • 计算机系统 实验四(课程实验LAB四)

    实验中需要的几个控制语句 u userid 使用这个语句是要确保不同的人使用不同的 ID 做题 并攻击不同的地址 h 用于打印这几个操作的内容 n 用于 Level4 关卡 s 用于提交你的解决方案到服务器中 1 根据makecookie生
  • mysql ERROR 1045 (28000): Access denied for user ‘ODBC‘@‘localhost‘ (using password: YES)

    遇到这个问题搞了很久 自己记下来 方法是百度的 亲测有效 ERROR 1045 28000 Access denied for user ODBC localhost using password NO ERROR 1045 28000 A
  • 按照lockattribute来划分MESH

    网格模型基础 网格模型 一 定义 二 子集和属性缓存 2 0 子集 2 1 属性 2 2 操作 三 邻接信息 四 属性表 五 优化 六 网格的创建与绘制 6 1 创建 6 2 绘制 一 定义 网格模型是一种将物体的顶点数据 纹理 材质等信息
  • Linux内核scripts/Makefile.build文件结构

    1 默认目标 build 2 初始化obj y obj m等变量 3 include include config auto conf 内含CONFIG RING BUFFER y等变量列表 4 include scripts Kbuild
  • vue+element动态设置el-menu导航,刷新页面保持当前菜单选中项及路由

    今天闲来无事整理了一套后台管理系统的侧边栏菜单 实现了页面刷新路由保持不变和菜单也是当前点击的高亮状态 来一起看看吧 首先 菜单数据是动态的 注意的是 id 和 路由的 name保持一致 页面刷新要用到 一级菜单不用name 因为没用到路由
  • Android开机自启动添加

    1 添加需要自启动的可以执行文件 1 可执行C文件 system core init start needInitStartService c 例如 include
  • 基于大数据的python爬虫的菜谱美食食物推荐系统

    众所周知 现阶段我们正处于一个 大数据 时代 从互联网上大量的数据中找到自己想要的信息变得越来困难 搜索引擎的商业化给市场带来了百度和谷歌这样的商业公司 网络爬虫便是搜索引擎的重要组成部分 本课题是基于Python设计的面向下厨房网站的网络
  • edge浏览器打开多个网页卡顿解决办法

    edge有时候打开了十几个页面就大量占据内存了 卡的不行 上网汇总了解决方法 具体参考以下两篇文章 一个是通过edge浏览器自身的设置修改 一个是关闭gpu相关的图形加速插件 按照以下两篇文章的方法基本就不会卡了 1 解决win10系统ed
  • Redis 与 Lua 脚本

    这篇文章 主要是讲 Redis 和 Lua 是如何协同工作的以及 Redis 如何管理 Lua 脚本 Lua 简介 Lua 以可嵌入 轻量 高效 提升静态语言的灵活性 有了 Lua 方便对程序进行改动或拓展 减少编译的次数 在游戏开发中特别
  • 16行 python代码获取音效素材

    人生苦短 我用python 声音素材资源 源码资料电子书 点击此处跳转文末名片获取 所需环境 开发环境 Python 环境 Pycharm 编辑器 模块 requests re 流程讲解 首先我们打开网址后右键选择检查 选择network
  • Visual Studio 自动补全代码

    自动补全两种方式 1 写完下面代码 双击Tab 自动补全 2 写完下面代码 回车 单击Tab 自动补全 可以在vs中自行查看 ctor 自动补全构造函数 prop 自动实现属性 cw Console WriteLine switch 自动补
  • 【边喝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