觅君诗 2024-10-15 23:54 采纳率: 0%
浏览 5
问题最晚将于10月23日00:00点结题

is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。

在复现24CVPR论文:Stronger, Fewer, & Superior: Harnessing Vision Foundation Models for Domain Generalized Semantic Segmentation时,出现问题。

源码链接:https://github.com/w1oves/Rein

cuda,torch版本如图。

img

环境配置按照readme指示完成

img

在运行Evaluation时出现以下错误

img

img

_ReinsDinoVisionTransformer is not in the mmseg::model registry. Please check whether the value of ReinsDinoVisionTransformer is correct or it was registered as expected. _

报错的官方文档给出的解决方案没有弄懂,试了github上的一些解决方案也没有用。感谢帮助。

  • 写回答

8条回答 默认 最新

  • 专家-皆知 2024-10-16 00:01
    关注

    参考免费微信小程序:皆我百晓生 作答,经由专家-皆知整理回复,如问题解决,望采纳;如仍有疑问,请评论回复。

    这个问题是因为你的自定义模型ReinsDinoVisionTransformer没有正确地注册到MMSegmentation的模型注册表中。MMEngine和MMSegmentation框架使用注册表模式来管理模型、组件等,确保配置文件能正确地实例化对应的类。当你自定义了一个模型,你需要在相应的初始化文件中(通常是.py文件,比如在你的模型目录下的__init__.py)进行注册。

    解决步骤

    1. 定位模型文件: 确认你的ReinsDinoVisionTransformer模型定义所在的文件路径,比如假设它位于my_models/reins_dino.py

    2. 在模型文件中注册: 在模型定义的文件里,或者在更顶层的__init__.py中,你需要添加注册代码。如果你的模型定义如下:

      # reins_dino.py
      class ReinsDinoVisionTransformer(nn.Module):
          # ...模型定义...
      

      在同一文件的底部或者在对应的__init__.py中添加:

      # 如果是在reins_dino.py内部
      from mmseg.registry import MODELS
      MODELS.register_module(name='ReinsDinoVisionTransformer', module=ReinsDinoVisionTransformer)
      
      # 或者在my_models/__init__.py中,确保导入并注册
      from .reins_dino import ReinsDinoVisionTransformer
      MODELS.register_module(name='ReinsDinoVisionTransformer', module=ReinsDinoVisionTransformer)
      
    3. 确保路径被正确导入: 如果模型不在MMSegmentation默认的查找路径中,你可能需要在MMSegmentation的配置文件或初始化代码中,通过修改MMSEGMENTATION_CFG_DICT或使用环境变量来添加你的自定义模块路径。但通常,正确的注册和合理的项目结构应该避免这一步。

    4. 重启环境: 修改完后,确保重启Python环境或IDE,因为注册操作是在导入时执行的,重启确保这些更改被加载。

    5. 检查配置文件: 确保你的配置文件(configs/dinov2/rein_dinov2_mask2former_512x512_bs1x4.py)中引用的模型名与你注册的模型名完全一致,包括大小写。

    如果以上步骤都已完成且无误,但问题依旧,检查是否有其他命名冲突或环境配置问题。确保你的工作环境干净,没有旧的或不匹配的模块版本干扰。

    注意点

    • 确保所有必要的自定义代码都已经被git clone下来,并且在正确的路径中。
    • 使用mim工具安装和管理MMEngine、MMCV、MMSegmentation时,确保版本兼容性,特别是如果你对这些库进行了扩展或修改。
    • 文档链接中的指导是关于如何在配置文件中正确引用模型以及如何在代码中注册自定义组件的,仔细阅读并对照你的实现进行检查。

    遵循上述步骤,你应该能够解决模型未注册的问题。如果还有问题,检查错误日志和配置细节,寻找可能的遗漏或错误配置。

    评论

报告相同问题?

问题事件

  • 创建了问题 10月15日

悬赏问题

  • ¥30 模拟电路 logisim
  • ¥15 PVE8.2.7无法成功使用a5000的vGPU,什么原因
  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?
  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Bug traq 数据包 大概什么价