You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用yolov5-inference包做YOLOv5目标检测时出现RuntimeError维度不匹配错误

报错根因

该RuntimeError属于YOLOv5版本不兼容导致的输出张量维度不匹配:你训练best.pt权重时使用的YOLOv5版本,和yolov5-inference包底层依赖的YOLOv5版本迭代中调整了检测头的输出维度计算逻辑,3类目标对应的输出维度在不同版本中分别为60、84,推理时两个维度无法对齐就会触发该报错。

可执行的解决步骤
  • 先做基础验证:替换你的best.pt为YOLOv5官方发布的对应版本预训练权重运行代码,如果官方权重可正常推理,即可确认是自定义训练权重和当前环境版本不匹配的问题。
  • 方案1:对齐YOLOv5版本
    查询你训练best.pt时使用的YOLOv5版本号,卸载当前环境中的YOLOv5依赖后安装对应版本即可,示例安装命令:pip install yolov5==6.1(将版本号替换为你训练时的实际版本)。
  • 方案2:显式指定推理输入尺寸
    实例化DetectObject时补充和训练时一致的输入尺寸参数,避免框架使用默认值导致维度计算错误,修改后的初始化代码示例:
model = DetectObject(weights='best.pt', classes=class_name, img_size=640)

将示例中的640替换为你训练时设置的实际输入尺寸。

  • 方案3:核对类别数配置
    确认你定义的class_name字典的总类别数,和训练时数据集配置yaml文件中的nc(类别总数)参数完全一致,类别数不符也会导致检测头输出维度计算错误。你当前配置的是3类,需确认训练时nc参数值为3。
  • 方案4:替换推理接口
    如果上述步骤都无法解决,可直接使用YOLOv5官方的推理接口替代二次封装的yolov5-inference包,官方接口对不同版本权重的兼容性更好。

内容的提问来源于stack exchange,提问作者tad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 08:57:01