yolov9目标检测报错AttributeError: ‘list‘ object has no attribute ‘device‘

深度学习


文章目录


前言

yolov9运行自己训练的模型时,出现以下错误:

bash 复制代码
root@b219ae83c78f:/yolov9# python detect.py --source './data/images/horses.jpg' --img 640 --device 0 --weights runs/train/yolov9-c8/weights/best.pt --name yolov9_c_c_640_detect2
detect: weights=['runs/train/yolov9-c8/weights/best.pt'], source=./data/images/horses.jpg, data=data/coco128.yaml, imgsz=[640, 640], conf_thres=0.25, iou_thres=0.45, max_det=1000, device=0, view_img=False, save_txt=False, save_conf=False, save_crop=False, nosave=False, classes=None, agnostic_nms=False, augment=False, visualize=False, update=False, project=runs/detect, name=yolov9_c_c_640_detect2, exist_ok=False, line_thickness=3, hide_labels=False, hide_conf=False, half=False, dnn=False, vid_stride=1
YOLO 🚀 v0.1-104-g5b1ea9a Python-3.8.12 torch-1.11.0a0+b6df043 CUDA:0 (NVIDIA TITAN V, 12057MiB)

Fusing layers... 
yolov9-c summary: 604 layers, 50880768 parameters, 0 gradients, 237.6 GFLOPs
Traceback (most recent call last):
  File "detect.py", line 231, in <module>
    main(opt)
  File "detect.py", line 226, in main
    run(**vars(opt))
  File "/opt/conda/lib/python3.8/site-packages/torch/autograd/grad_mode.py", line 28, in decorate_context
    return func(*args, **kwargs)
  File "detect.py", line 102, in run
    pred = non_max_suppression(pred, conf_thres, iou_thres, classes, agnostic_nms, max_det=max_det)
  File "/yolov9/utils/general.py", line 905, in non_max_suppression
    device = prediction.device
AttributeError: 'list' object has no attribute 'device'

File "/yolov9/utils/general.py", line 905, in non_max_suppression

这行代码错误,应该是照抄了yolov5的代码

bash 复制代码
 if isinstance(prediction, (list, tuple)):  # YOLO model in validation model, output = (inference_out, loss_out)
        prediction = prediction[0]  # select only inference output

    device = prediction.device
    mps = 'mps' in device.type  # Apple MPS
    if mps:  # MPS not fully supported yet, convert tensors to CPU before NMS
        prediction = prediction.cpu()
    bs = prediction.shape[0]  # batch size
    nc = prediction.shape[1] - nm - 4  # number of classes
    mi = 4 + nc  # mask start index
    xc = prediction[:, 4:mi].amax(1) > conf_thres  # candidates

改成以下代码,问题解决,

bash 复制代码
    if isinstance(prediction, (list, tuple)):  # YOLO model in validation model, output = (inference_out, loss_out)
        processed_predictions = []
        for pred_tensor in prediction:
            processed_tensor = pred_tensor[0]
            processed_predictions.append(processed_tensor)
        #prediction = prediction[0]  # select only inference output
        prediction = processed_predictions[0]

    device = prediction.device
    mps = 'mps' in device.type  # Apple MPS
    if mps:  # MPS not fully supported yet, convert tensors to CPU before NMS
        prediction = prediction.cpu()
    bs = prediction.shape[0]  # batch size
    nc = prediction.shape[1] - nm - 4  # number of classes
    mi = 4 + nc  # mask start index
    xc = prediction[:, 4:mi].amax(1) > conf_thres  # candidates

完美解决。

相关推荐
亿发软件YiFaRJ6 分钟前
从盒马看新零售:战略调整背后的零售行业风向-亿发
人工智能
寒草12 分钟前
「LLM 训练解析」:从 Pretrain 到 DPO,LLM 是如何一步步变聪明的?
前端·人工智能·chatgpt
youcans_19 分钟前
【医学影像 AI】大型语言模型生成 ROP 患者信息材料的能力
论文阅读·人工智能·语言模型·自然语言处理·健康医疗
果冻人工智能23 分钟前
人工智能辅助 3D 建模:Claude + Blender MCP 体验
人工智能
带电的小王1 小时前
InternVL:论文阅读 -- 多模态大模型(视觉语言模型)
论文阅读·人工智能·语言模型·多模态大模型·internvl
果冻人工智能1 小时前
在大型软件项目中优化组件配置
人工智能
Zhouqi_Hua1 小时前
LLM论文笔记 24: A Theory for Length Generalization in Learning to Reason
论文阅读·人工智能·笔记·深度学习·语言模型·自然语言处理
IT猿手1 小时前
基于牛优化( OX Optimizer,OX)算法的多个无人机协同路径规划(可以自定义无人机数量及起始点),MATLAB代码
人工智能·算法·机器学习·matlab·无人机
梓䈑1 小时前
【C++】list(下):list类的模拟实现(含反向迭代器实现)
c++·windows·list
Y1nhl1 小时前
搜广推校招面经五十
人工智能·pytorch·深度学习·算法·机器学习·推荐算法·搜索算法