detectron2学习:KeyError: “No object named ‘XXXXX‘ found in ‘BACKBONE‘ registry!“

2023-05-16

问题来源:在使用FB的框架detectron2改写模型的时候碰到了KeyError: "No object named 'XXXXX' found in 'BACKBONE' registry!"的bug。

分析:detectron2中自定义的模型都需要注册,这一点官方的文档中已经提到,上图是官方给出的标准模型注册code,我照着官方文档改写代码还是报错,我的代码如下:

可以看到,我已经像文档所说的那样使用装饰器注册了我自己的backbone,但是运行train_net.py还是会报错找不到自定义的backbone。

再次翻看detectron2官方给出的TridentNet的代码,并没有发现有什么不一样,上图:

我的代码也是仿照着TridentNet的结构写的,所以应该不会有大的问题,但是有一个小细节引起了我的注意,这个细节是TridentNet的目录结构:

可以看到TridentNet中有一个文件叫做init.py,这个文件是做什么的大家可以自行百度python工程中init.py的作用,这里不再赘述。

再次查询github:

开发者给出的回答是代码没有导入,其实问题已经浮现出来了,其实就是你虽然装饰了你的backbone或者模型,但是根本就没有执行你的那段代码,我的代码结构如下:

造成这个的原因是因为新建net这个文件夹的时候选择的是directory而不是python package,区别就是会不会为你生成init.py,区别不再赘述,所以自己弄一个,或者重新新建,把net文件改为python package,改完如下:

 

在init.py里面导入自己写的模块:

再在自己的训练文件train_net.py里导入net时,就会将它视为一个package并执行_init_.py

这样你注册的模型的那段代码才得到了执行。

这样问题得以解决,造成这个问题的原因还是自己的python基础太过薄弱,早就注意到了TridentNet的目录里有init文件,不知道有什么在作用放着没管,结果最后确实是这个问题造成的bug。

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

detectron2学习:KeyError: “No object named ‘XXXXX‘ found in ‘BACKBONE‘ registry!“ 的相关文章

  • var->myProperty 和 var.myProperty 之间的区别

    我是 Objective C 的新手 我有一些疑问 我发现您可以访问类的属性 例如var gt 我的属性也喜欢那样变量 myProperty 但我不知道2之间有什么区别 我在互联网上搜索了很多 但确实没有找到确凿的答案 抱歉 如果我有拼写错
  • Java 中将对象与 null 进行比较

    我正在尝试验证一个对象是否是null或不 使用以下语法 void renderSearch Customer c System out println search customer rendering gt try if c equals
  • Kendo UI - observable、ObservableObject 和 Model 之间的区别

    observable ObservableObject 和 Model 之间有什么区别 谢谢 Model继承自ObservableObject 而ObservableObject又继承自Observable 可观察的 http docs k
  • 使用数组字段代替大量对象

    鉴于本文 http www simple talk com dotnet net framework object overhead the hidden net memory allocation cost 我想知道人们在内存中使用数组存
  • 在 VB.NET 中对对象列表进行排序

    我有一个乘客 对象 列表 它具有不同的属性 passenger name passenger age passenger surname 我想按年龄标准对这个列表进行排序 我该怎么做 我知道在整数 字符串列表中 List Sort 有效 但
  • java hashmaps 的 get() 函数

    我声明了以下哈希图 HashMap
  • Json.Net 根据值选择对象

    我有一个 Json 对象 如下所示 wvw matches wvw match id 1 4 red world id 1011 blue world id 1003 green world id 1002 start time 2013
  • Python 对象属性 - 访问方法

    假设我有一个具有某些属性的类 在 Pythonic OOP 中 如何访问这些属性是最好的 就像obj attr 或者也许编写 get 访问器 此类事物可接受的命名风格是什么 Edit 您能否详细说明使用单下划线或双前导下划线命名属性的最佳实
  • 如何在 jQuery 中检查 null 对象

    我正在使用 jQuery 我想检查页面中是否存在某个元素 我写了以下代码 但它不起作用 if btext i null alert btext i text btext i text Branch i 如何检查元素是否存在 检查jQuery
  • 为什么.NET中的每个类都继承自Object?

    我不明白 为什么他们需要一个共同的基础 这个问题预设了一个谎言 他们不need一个共同的基础类型 这个选择并不是出于必要 这是出于为客户提供最佳价值的愿望 当设计类型系统或任何其他相关问题时 有时您会遇到决策点 您必须决定 X 或非 X 公
  • Javascript 中“是……的实例”是什么意思?

    这个问题的答案 JavaScript 函数的原型属性的初始值是多少 https stackoverflow com questions 4073677 what is the initial value of a javascript fu
  • 如何使对象“a == b”的比较成立? [复制]

    这个问题在这里已经有答案了 这是面试前 JavaScript 在线测试的问题之一 function F var a new F var b new F Q 如何进行比较a b to be true e g console log a b t
  • “过滤”JSON 以获得唯一键并获取所有相关值

    找到一个组中所有可能的相关值的最佳方法是什么 var table group a stuff new group a stuff old group b stuff newOld group b stuff old group c stuf
  • C++ 指针和对象实例化

    这有效 MyObject o o new MyObject 而这并不 MyObject o new MyObject Why 关键词new 返回一个指针 http msdn microsoft com en us library kewsb
  • 如何动态创建新属性

    如何从对象方法内的给定参数创建属性 class Foo public function createProperty var name val here how can I create a property named var name
  • Java中如何对对象数组进行排序?

    我的数组不包含任何字符串 但它包含对象引用 每个对象引用都通过 toString 方法返回名称 id 作者和发布者 public String toString return name n id n author n publisher n
  • 字符串化 JavaScript 对象

    我正在寻找字符串化一个对象 我想要这样的输出 1 valeur dalebrun usager experttasp date 2013 08 20 16 41 50 2 valeur test usager experttasp date
  • PHP:是否可以从文件内容(字符串)创建 SplFileObject 对象?

    例如 contents file get contents image png 是否可以从 contents 创建 SplFileObject 对象 Thanks php 有一些特殊的流包装器 http www php net manual
  • 如何获取对象的所有属性?

    如何在 JavaScript 中使用反射获取对象的所有属性 循环遍历对象并获取属于该对象且不属于该对象的每个键 一个函数 var properties for var key in obj if obj hasOwnProperty key
  • R中整数类和数字类有什么区别

    我想先说我是一个绝对的编程初学者 所以请原谅这个问题是多么基本 我试图更好地理解 R 中的 原子 类 也许这适用于一般编程中的类 我理解字符 逻辑和复杂数据类之间的区别 但我正在努力寻找数字类和整数类之间的根本区别 假设我有一个简单的向量x

随机推荐

  • 【RTD】AD7793驱动程序

    文章目录 1 前言2 AD7793驱动程序2 1 spi访问接口2 2 寄存器和常用配置值2 3 初始化2 4 原始数据获取2 5 阻值换算 3 使用4 完整工程代码 1 前言 前面文章主要描述AD7793分别与两线 三线 四线RTD连接电
  • 【RTD】二分法查找和分段线性插值算法在RTD中应用

    文章目录 1 前言2 二分法查找2 1 复杂度2 2 实现 3 分段线性插值4 RTD实例 1 前言 处理器通过RTD采集电路 xff08 芯片 xff09 精确获得当前RTD电阻值后 xff0c 再结合RTD与温度线性关系表 xff0c
  • 24系列EEPROM/FRAM通用驱动库移植到RT-Thread

    文章目录 1 前言2 接口实现2 1 i2c收发函数实现2 2 页写延时函数2 3 写保护函数2 4 设备注册 3 对接RT Thread设备驱动3 1 标准设备驱动接口3 2 注册到RT Thread3 3 导出到msh3 4 测试 4
  • 【RT-Thread】TCA9534 8位I/O扩展器驱动软件包

    文章目录 1 简介1 1 目录结构1 2 许可证 2 芯片介绍3 支持情况4 使用说明4 1 依赖4 2 获取软件包4 3 初始化4 4 访问设备4 5 msh finsh测试查看设备注册执行sample 5 代码仓库 1 简介 tca95
  • 【代码质量】RAII在C++编程中的必要性

    文章目录 1 前言2 什么是RAII3 为什么用RAII4 RAII应用5 小结 1 前言 C C 43 43 相比其他高级编程语言 xff0c 具有指针的概念 xff0c 指针即是内存地址 C C 43 43 可以通过指针来直接访问内存空
  • C++ RAII典型应用之lock_guard和unique_lock模板

    文章目录 1 前言2 lock guard3 lock guard使用4 unique lock5 相关文章 1 前言 常用的线程间同步 通信 xff08 IPC xff09 方式有锁 xff08 互斥锁 读写锁 自旋锁 xff09 屏障
  • 基于STM32的实时操作系统FreeRTOS移植教程(手动移植)

    前言 xff1a 此文为笔者FreeRTOS专栏 下的第一篇基础性教学文章 xff0c 其主要目的为 xff1a 帮助读者朋友快速搭建出属于自己的公版FreeRTOS系统 xff0c 实现后续在实时操作系统FreeRTOS上的开发与运用 操
  • 通过sysinfo获取Linux系统状态信息

    系统运行状态信息是我们关注的重点 xff0c 通过当前系统的输出信息 xff0c 如内存大小 进程数量 运行时间等 xff0c 以便分析CPU负载 软硬件资源占用情况 xff0c 确保系统高效和稳定 Linux系统中 xff0c 提供sys
  • Keil AC5/Keil AC6/IAR指定数据绝对存储地址

    文章目录 1 前言2 实现方法3 例子 1 前言 编译过程中 xff0c 指定数据绝对存储地址在实际项目中会经常使用到或者必须用到 xff0c 这样使得项目实现某些功能可以非常灵活 xff0c 常用的场景有 xff1a IAP升级时候 xf
  • 嵌入式开发常用到的在线工具

    文章目录 IP地址计算常用加解密 xff0c AES DSE Base64 MD5异或 xff08 BCC xff09 校验CRC计算十六进制格式化字符串Json格式化HTML运行器常用在线编译器 xff08 C C 43 43 C JAV
  • STM32H7xx 串口DMA发送&接收(LL库)

    文章目录 1 前言2 STM32H7实现2 1 关键步骤2 2 注意事项 3 代码仓库 1 前言 关于串口DMA收发实现 xff0c 不同CPU其套路都是类似的 xff0c 不同之处在于寄存器配置 依赖BSP库等差异 串口DMA收发详细实现
  • 正交编码器溢出处理

    文章目录 1 正交编码器1 1 参数特性1 2 应用范围 2 正交编码器使用2 1 溢出问题2 2 中断模式2 3 循环模式延伸 1 正交编码器 正交编码器一般指的是增量式光栅 xff08 磁栅 xff09 编码器 xff0c 通常有三路输
  • PX4多旋翼期望姿态矩阵生成算法

    1 PX4多旋翼期望姿态生成算法 1 1 求期望体轴X轴向量1 2 求期望体轴Y轴向量1 3 求期望姿态矩阵1 4 求期望姿态角 1 PX4多旋翼期望姿态生成算法 PX4多旋翼期望姿态生成采用旋转矩阵方法 xff0c 基本思路为根据外环解算
  • git安装

    Git介绍 分布式 xff1a Git版本控制系统是一个分布式的系统 xff0c 是用来保存工程源代码历史状态的命令行工具 保存点 xff1a Git的保存点可以追踪源码中的文件 并能得到某一个时间点上的整个工程项目的状态 xff1b 可以
  • linux更改ssh连接方式将publickey改为用户名密码登录

    1 vim etc ssh sshd config 2 PermitRootLogin no 改为 PermitRootLogin yes 3 service restart sshd
  • dsp2812 pmsm foc之速度环电流环

    61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 速度环PI 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61
  • leetcode(c++)

    放假没事刷几道leetcode xff0c 一些常见典型题的答案和解析 平时python用的比较多 xff0c 但分析复杂度的时候用python编程不方便 xff0c 所以刷题的时候用了c 43 43 C 43 43 基础 C 43 43
  • 基于STM32的超声波雷达项目【可拟合构建平面地图】(代码开源)

    前言 xff1a 本文为手把手教学基于STM32的超声波雷达 项目 HC SR04雷达 本次项目采用的是STM32作为MCU xff0c 搭配常用的HC SR04超声波模块与舵机SG90实现模拟雷达检测 的效果 模拟了雷达图UI 可以拟合构
  • android sdk manager不显示更新,只显示已安装,解决办法

    启动 Android SDK Manager xff0c 打开主界面 xff0c 依次选择 Tools Options xff0c 弹出 Android SDK Manager Settings 窗口 xff1b 在 Android SDK
  • detectron2学习:KeyError: “No object named ‘XXXXX‘ found in ‘BACKBONE‘ registry!“

    问题来源 在使用FB的框架detectron2改写模型的时候碰到了KeyError 34 No object named 39 XXXXX 39 found in 39 BACKBONE 39 registry 34 的bug 分析 xff