YOLOv9训练教程,并解决部分报错问题,必看❗❗❗

时间:2025-01-28 10:57:56

???? Welcome to Aedream同学 's blog! ????


文章目录

    • 前言
    • 基本操作
    • YAML文件解析
    • 注意事项❗❗❗
      • 'gbk' codec can't decode byte 0x80 in position 238: illegal multibyte sequence
      • , train_dual.py or train_triple.py
      • AttributeError: 'list' object has no attribute 'view'


✨✨✨✨立志真正解决大家问题,只写精品博客文章,感谢关注,共同进步✨✨✨✨


前言

YOLOv9提出后部分博主发布了训练教程,但真的质量堪忧,甚至, train_dual.py or train_triple.py该使用哪个都不对,因此报错❗❗。

所以制作本期教程以供大家参考,如有错误欢迎指正交流????????

基本操作

代码链接:???? /WongKinYiu/yolov9

  1. 配置环境
  2. 下载代码
  3. 解压,如果训练models/detect/,配置train_dual.py。

在这里插入图片描述

YAML文件解析

部分人疑惑中的Silence是什么

根据models/

class Silence(nn.Module):
    def __init__(self):
        super(Silence, self).__init__()
    def forward(self, x):    
        return x

Silence 就是无操作,输入x,输出还是x

主要是为了在后续调用原输入


注意事项❗❗❗

‘gbk’ codec can’t decode byte 0x80 in position 238: illegal multibyte sequence

检测数据集配置文件的yaml文件中是否存在中文或表情符号等,将其删除。


, train_dual.py or train_triple.py

tran_dual.py train_triple.py The relationship and difference between the three · Issue #1 · WongKinYiu/yolov9 ()

在这里插入图片描述
提供作者的原回复做参考。

  1. train_dual:1 个辅助分支 + 1 个主分支。
  2. Triple_branch:两个辅助分支 + 一个主分支

我们提供这些代码来展示如何扩展辅助分支进行训练。 大家可以按照规则进行相关研究。 例如,我们还扩展了train_multiple来实现类似于Co-DETR的训练策略。

所以理论上可根据train_dual.py和 train_triple.py自己研究n个辅助分支 + 一个主分支如何训练。

AttributeError: ‘list’ object has no attribute ‘view’

使用训练就会报错

AttributeError: ‘list’ object has no attribute ‘view’ · Issue #22 · WongKinYiu/yolov9 ()

问题描述:

In loss_tal.py: pred_distri, pred_scores = ([(feats[0].shape[0], , -1) for xi in feats], 2).split(  
(self.reg_max * 4, ), 1)  
The error is as follows:  
AttributeError: 'list' object has no attribute 'view'

作者回复:

YOLOv9 models should be trained with train_dual.py

图片