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

使用Torch加载训练好的YoloV5模型时遇ImportError错误求助

解决Yolov5模型加载时is_jupyter导入错误的方案

这个错误的核心原因是本地训练使用的Yolov5版本与torch.hub自动拉取的Yolov5版本不兼容:新版本Yolov5的utils.general模块新增了is_jupyter函数,但你训练模型时用的旧版本没有这个函数,导致加载时出现导入失败。

以下是三种可行的解决方法:

方法1:指定torch.hub加载与训练一致的Yolov5版本

找到你训练模型时使用的Yolov5版本(比如v6.2),在torch.hub.load中指定对应的commit哈希或tag,确保版本匹配:

import torch

yolo = torch.hub.load(
    'ultralytics/yolov5',
    'custom',
    path='/content/yolov5/runs/train/yolov5s_results/weights/best.pt',
    force_reload=True,
    trust_repo=True,
    repo_commit='31212f0'  # 替换为你训练时Yolov5版本的commit哈希
)

你可以在本地yolov5目录执行git log查看训练时的commit记录。

方法2:直接使用本地Yolov5代码加载模型

跳过torch.hub,直接调用本地训练用的Yolov5代码加载模型,完全避免版本差异:

import sys
sys.path.insert(0, '/content/yolov5')  # 添加本地yolov5路径到环境变量
import torch

# 针对Yolov5 v6.x及更早版本
from models.experimental import attempt_load
model = attempt_load('/content/yolov5/runs/train/yolov5s_results/weights/best.pt', 
                     map_location='cuda' if torch.cuda.is_available() else 'cpu')

# 针对Yolov5 v7+版本
# from models.common import DetectMultiBackend
# model = DetectMultiBackend(weights='/content/yolov5/runs/train/yolov5s_results/weights/best.pt', 
#                            device='cuda' if torch.cuda.is_available() else 'cpu')

方法3:更新本地Yolov5到最新版本并重新训练

如果允许重新训练,将本地Yolov5更新到最新版本,再重新训练模型,之后即可用原代码正常加载:

cd /content/yolov5
git pull

重新训练完成后,原有的torch.hub.load代码就能正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 14:32:40