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

torch.hub.load()在.py文件报错,Notebook正常的解决办法

问题解决:Python脚本中torch.hub.load加载YOLOv5模型报网络错误

你遇到的情况是:Notebook里能正常加载自定义YOLOv5模型,但迁移到.py脚本运行时,torch.hub.load触发网络请求相关报错,且两者环境一致。从报错栈来看,问题出在torch.hub验证仓库是否为fork的步骤中,网络请求失败导致加载中断。

以下是几种直接有效的解决方法:

方法1:跳过仓库验证步骤

在调用torch.hub.load时添加trust_repo=True参数,直接跳过仓库合法性验证的网络请求环节。修改后的代码如下:

def load_model(self):
    # Load the YOLOv5 model
    self._model = torch.hub.load(
        'ultralytics/yolov5', 
        'custom', 
        path='/Users/marco.vinciguerra/Bitbucket/sam/segmentator_proposal/classes/models/Yolov5l6_ti_lite_640/best.pt', 
        force_reload=True,
        trust_repo=True  # 添加此参数跳过验证
    )

方法2:使用本地YOLOv5仓库加载

如果你已经在本地克隆了ultralytics/yolov5仓库,直接传入本地仓库路径给torch.hub.load,并指定source='local',完全避免远程网络交互:

def load_model(self):
    # Load the YOLOv5 model from local repo
    self._model = torch.hub.load(
        '/path/to/your/local/yolov5',  # 替换为你本地yolov5仓库的实际路径
        'custom', 
        path='/Users/marco.vinciguerra/Bitbucket/sam/segmentator_proposal/classes/models/Yolov5l6_ti_lite_640/best.pt', 
        source='local'
    )

方法3:复用Notebook中的缓存

torch.hub会把下载的仓库缓存到~/.cache/torch/hub目录下,Notebook运行后该目录应该已经有ultralytics_yolov5的缓存文件夹。你可以检查该目录的权限,确保脚本运行用户有读取权限;或者复制Notebook环境的缓存到脚本运行环境的对应路径下,这样脚本加载时会直接使用缓存,无需发起网络请求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 05:10:12