当前位置: 首页 > news >正文

解决 mmseg/models/decode_heads/mask2former_head.py 中__init__()关键字参数错误

目录

【1 - 问题描述】

【2 - 报错位置检查】

【3 - 问题解决】

【4 - 解决的过程】

【1 - 问题描述】

在mmsegmentation中运行mask2former模型的分割任务遇到报错缺少关键字的错误:

TypeError: class `Mask2FormerHead` in mmseg/models/decode_heads/mask2former_head.py: __init__() got an unexpected keyword argument 'in_channels'

【2 - 报错位置检查】

 在我运行train.py命令中对应的--config 文件中确实有in_channels和strides等参数(我在查看了Mask2Former的源码Mask2Former/mask2former/modeling/transformer_decoder/mask2former_transformer_decoder.py at main · facebookresearch/Mask2Former (github.com)中,网络结构确实需要这些参数的输入)

而在模型库的".../mmsegmentation/mmseg/models/decode_heads/maskformer_head.py"(下文中 maskformer_head.py 都说的是这个文件)的head模块定义中,只有如下简单的几个参数报错,导致了__init__() got an unexpected keyword argument 'in_channels'。

【3 - 问题解决】

根本原因在于没有安装mmdet这一图像检测的库,maskformer这一实例分割网络依赖目标检测的结果,故会调用mmdetection的类和模块!!

参考 快速入门 — MMDetection 3.3.0 文档

由于我只是将 mmdet 用作依赖项或第三方包,故使用 MIM 安装它:

mim install mmdet

 到这里 ,我的__init__() got an unexpected keyword argument 'in_channels'的报错就解决了!!

【4 - 解决的过程】

(可选读)在这里只是简单记录一下我的解决过程:

通过搜索  ‘maskformer head定义in_channel’ ,发现一篇很详细的博文:mmdetection源码阅读--MaskFormer(三) - 知乎 (zhihu.com)。

对比博文中的代码发现我的mmseg(分割)工作的MaskFormer Head的定义(maskformer_head.py)为:

看到“class Mask2FormerHead(MMDET_Mask2FormerHead):”,意识到是继承了mmdet的类。并且在该(maskformer_head.py)的import中有这么一句:

try:from mmdet.models.dense_headsimport Mask2FormerHead as MMDET_Mask2FormerHeadexcept ModuleNotFoundError:MMDET_Mask2FormerHead = BaseModule          # BaseModule即 mmseg.models,而mmseg中没有in_channels等参数的定义

http://www.lryc.cn/news/316892.html

相关文章:

  • ​如何使用 ArcGIS Pro 分析爆炸波及建筑
  • LoadBalancer (本地负载均衡)
  • 每日一题 第一期 洛谷 铺地毯
  • Linux 多线程开发
  • Android 9.0 关于在系统Launcher3中调用截图api总是返回null的解决方案
  • openssl3.2 - exp - 用openssl命令行来模拟ECC加解密的全流程
  • 【Linux进阶之路】HTTP协议
  • 股市新手福音:河北源达“财源滚滚”让投资变得更简单
  • 2024.02.14 校招 实习 内推 面经
  • 5.Java并发编程—JUC线程池架构
  • llama2c(4)之forward、sample、decode
  • 20240312-2-贪心算法
  • 前端 --- HTML
  • curl c++ 实现HTTP GET和POST请求
  • 12、设计模式之代理模式(Proxy)
  • springboot集成Quartz定时任务组件
  • 代码随想录算法训练营第38天—动态规划06 | ● 完全背包 ● *518. 零钱兑换 II ● 377. 组合总和 Ⅳ
  • C语言每日一题(63)复写零
  • ElasticSearch聚合查询
  • 【毕设级项目】基于AI技术的多功能消防机器人(完整工程资料源码)
  • 【一】【设计模式】类关系UML图
  • 【DevOps基础篇】容器化架构基础设施监控方案
  • 【QT】文件流操作(QTextStream/QDataStream)
  • CentOS 7 devtoolset编译addressSanitizer版本失败的问题解决
  • ubuntu2004桌面系统英伟达显卡驱动安装方法
  • Java通过Excel批量上传数据!!!
  • 【PyQT/Pysider】控件背景渐变
  • ChatGPT-4 VS 文心一言4.0
  • MYSQL------从概述到DQL
  • MATLAB算法实战应用案例精讲-【图像处理】图像识别(基础篇)(二)