徐 TWO TWO 2023-10-16 10:07 采纳率: 0%
浏览 25
已结题

对yolov5融合asff和cbam的网络,剪枝出现丢失c2通道的问题

对yolov5进行了asff和cbam添加,然后对模型进行剪枝,剪枝后,总是出现:
TypeError: init() missing 1 required positional argument: 'c2'

Traceback (most recent call last):
  File "pruned.py", line 809, in <module>
    main(opt)
  File "pruned.py", line 782, in main
    run_prune(**vars(opt))
  File "A:\anaconda3\envs\yolov5-6.0_gpu\lib\site-packages\torch\autograd\grad_mode.py", line 27, in decorate_context
    return func(*args, **kwargs)
  File "pruned.py", line 496, in run_prune
    pruned_model = ModelPruned(maskbndict=maskbndict, cfg=pruned_yaml, ch=3).cuda()
  File "A:\yolov5-asff+cbam-p\models\yolo.py", line 294, in __init__
    self.model, self.save, self.from_to_map = parse_pruned_model(self.maskbndict, deepcopy(self.yaml), ch=[ch])  # model, savelist
  File "A:\yolov5-asff+cbam-p\models\yolo.py", line 601, in parse_pruned_model
    m_ = nn.Sequential(*(m(*args) for _ in range(n))) if n > 1 else m(*args)  # module
TypeError: __init__() missing 1 required positional argument: 'c2'

总是缺少c2这个通道,但在未剪枝前,添加了asff和cbam都可以正常运行,所以,剪枝出现了这样的问题,该如何解决?

  • 写回答

19条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2023-10-16 10:08
    关注
    获得1.05元问题酬金

    引自强大而免费的微信小程序:皆我百晓生。如有帮助,还望采纳。


    根据您提供的代码和错误信息,可以看出剪枝后的模型初始化过程中缺少了一个"c2"参数。

    剪枝过程中,模型的初始化由parse_pruned_model函数完成。在该函数内部,nn.Sequential被用于堆叠多个模块,而使用m(*args)来创建模块实例。根据错误信息,可以看出缺失的参数是由这些模块的初始化函数__init__所需要的。

    解决方法是在 parse_pruned_model 函数中的以下行代码中添加 c2 参数:

    `m_ = nn.Sequential(*(m(*args) for _ in range(n))) if n > 1 else m(*args)  # module`
    

    在这里,您需要查找模块初始化函数m中缺少 c2 参数的位置,并将其添加到构造函数__init__的参数列表中。

    您应该找到类似于 m = Conv(3, ch / 2, 1) # module 的语句,确保在其中的初始化函数Conv的定义中存在一个名为c2的参数。

    检查并修改这些地方后,剪枝过程中就不会再出现缺失c2通道的问题。

    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 10月24日
  • 赞助了问题酬金15元 10月18日
  • 创建了问题 10月16日

悬赏问题

  • ¥15 如何解除Uniaccess管控
  • ¥15 微信小程序跳转关联公众号
  • ¥15 Java AES 算法 加密采用24位向量报错如何处理?
  • ¥15 使用X11可以找到托盘句柄,监控到窗口点击事件但是如何在监听的同时获取托盘中应用的上下文菜单句柄
  • ¥45 字符串操作——数组越界问题
  • ¥15 Loss下降到0.08时不在下降调整学习率也没用
  • ¥15 QT+FFmpeg使用GPU加速解码
  • ¥15 为什么投影机用酷喵播放电影放一段时间就播放不下去了?提示发生未知故障,有什么解决办法吗?
  • ¥15 来个会搭建付费网站的有偿
  • ¥100 有能够实现人机模式的c/c++代码,有图片背景等,能够直接进行游戏