RT-DETR训练的BUG记录:AttributeError: ‘RTDETRDecoder‘ object has no attribute ‘stride‘

YOLOv8中RT-DETR训练训练记录3个bug:
1.RT-DETR的推理使用命令行运行,会出现KeyError: 196的错误
2.RT-DETR使用命令行进行断点训练,会报AttributeError: ‘RTDETRDecoder’ object has no attribute ‘stride’,可以通过代码推理规避
3.断点训练失效,可以通过临时修改ultralytics\engine\trainer.py中start_epoch改成继续训练的epoch,然后在ultralytics\cfg_init_.py文件中修改args.save_dir = "runs/detect/train16"即可
训练命令

yolo train data=rtdetr-x_ImageMatch/GAIIC2024_ImageMatchingFusion_Swin.yaml model=runs/detect/train16/weights/last.pt epochs=300 imgsz=640 workers=0 batch=4 amp=False pretrained=rtdetr-x_ImageMatch/rtdetr-x.pt

推理命令

yolo task=detect mode=predict model="./runs/detect/train12/weights/last.pt" conf=0.25 source="00001.jpg"

1.RT-DETR的推理使用命令行,发生了ultralytics\yolo\engine\results.py", line 265, in verbose
log_string += f"{n} {self.names[int©]}{‘s’ * (n > 1)}, " KeyError: 196 的错误,推测是由于实际分类标签少。使用推理代码可以规避这个错误。而使用推理代码进行推理可以规避这个错误。

断点训练命令

yolo train data=rtdetr-x_ImageMatch/GAIIC2024_ImageMatchingFusion_Swin.yaml model=runs/detect/train16/weights/last.pt epochs=300 imgsz=640 workers=0 batch=4 amp=False pretrained=rtdetr-x_ImageMatch/rtdetr-x.pt  save_period=10  save=True  resume=True

2.断点训练代码使用命令行执行,会报AttributeError: ‘RTDETRDecoder’ object has no attribute ‘stride’,而使用代码进行断点训练就可以规避这问题

from ultralytics import RTDETR
model = RTDETR('runs/detect/train16/weights/last.pt')
results = model.train(data="rtdetr-x_ImageMatch/GAIIC2024_ImageMatchingFusion_Swin.yaml", epochs=300, device='0',
                      batch=4,save=True, resume=True,amp=False,name="runs/detect/train16",save_dir="runs/detect/runs/detect/train16",workers=0
                     )  # 断点恢复训练模型

3.断点训练有时不生效,可以修改ultralytics\engine\trainer.py中start_epoch改成继续训练的epoch,然后在ultralytics\cfg_init_.py文件中修改args.save_dir = "runs/detect/train16"即可。
在这里插入图片描述
在这里插入图片描述

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值