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

使用SAHI加载自定义YOLOv5s6模型报错:yolov5无load属性

问题解决方法

错误原因

报错AttributeError: module 'yolov5' has no attribute 'load'是因为SAHI的YOLOv5加载逻辑依赖旧版YOLOv5的API,而你使用的YOLOv5s6(或更高版本)已经移除了yolov5.load()方法,或者YOLOv5的安装方式不对导致SAHI无法调用正确的接口。

具体解决方案

方案1:安装SAHI兼容的YOLOv5版本

卸载当前YOLOv5,安装适配SAHI的版本:

pip uninstall -y yolov5
# 安装ultralytics官方的YOLOv5仓库版本
pip install git+https://github.com/ultralytics/yolov5.git
# 或者指定稳定兼容版本,比如v6.2
# pip install yolov5==6.2

安装完成后,重新运行你的原代码即可。

方案2:手动加载YOLOv5模型后传入SAHI

如果不想更换YOLOv5版本,可以手动加载模型再用SAHI包装:

import torch
from sahi.models.yolov5 import Yolov5DetectionModel
from sahi.predict import get_sliced_prediction

# 手动加载自定义YOLOv5模型
model = torch.hub.load('ultralytics/yolov5', 'custom', path=str(path_model), device='cuda')

# 包装为SAHI检测模型
detection_model = Yolov5DetectionModel(
    model=model,
    confidence_threshold=0.3,
    device="cuda",
    category_names=model.names  # 传入模型的类别名称列表
)

# 切片预测逻辑不变
result = get_sliced_prediction(
    convert_file,
    detection_model,
    slice_height=1280,
    slice_width=1280,
    overlap_height_ratio=0.2,
    overlap_width_ratio=0.2
)
result.export_visuals(export_dir=path_export_txt)

方案3:升级SAHI到最新版本

新版SAHI已适配ultralytics的YOLO系列模型,尝试升级:

pip install --upgrade sahi

升级后再运行原代码,若仍有问题,可将model_type='yolov5'改为model_type='yolov5s'(对应你的模型大小)。

额外检查点

  • 确保path_model是有效路径:可以将model_path=path_model改为model_path=str(path_model),避免Path对象导致的路径解析问题。
  • 确认CUDA环境可用:运行torch.cuda.is_available()验证设备是否正确识别。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 03:37:23