使用Yolov5运行时出现exit code -1073741819(0xC0000005)访问违规错误如何解决
故障排查与修复方案
1. 验证PyTorch本身兼容性
0xC0000005内存访问错误大概率和PyTorch组件与当前设备的匹配问题有关,先单独测试PyTorch是否正常:
运行如下测试代码:
import torch print(torch.__version__) a = torch.tensor([1,2,3]) print(a)
如果这段代码也触发相同报错,说明PyTorch安装异常,执行如下操作:
- 完全卸载现有torch、torchvision、torchaudio组件:
pip uninstall torch torchvision torchaudio -y - 优先安装CPU版本PyTorch测试,排除GPU驱动、CUDA版本不兼容导致的内存访问错误
- 测试CPU版PyTorch运行正常后,再根据你设备的CUDA版本安装对应匹配的GPU版PyTorch
2. 修复Torch Hub缓存权限问题
torch.hub.load执行时会先把远程仓库代码缓存到本地默认路径,缓存文件损坏、路径权限不足都会触发访问违规,按如下步骤处理:
- 清空本地已有缓存:删除当前用户目录下的
.cache\torch\hub文件夹 - 手动指定有权限的缓存路径,在你的业务代码最开头添加环境变量配置:
import os # 替换为你当前用户有读写权限的文件夹路径 os.environ['TORCH_HOME'] = 'D:/custom_torch_cache' import torch
- 调用时添加强制重载参数,避免缓存复用:
model = torch.hub.load('ultralytics/yolov5', 'yolov5s', force_reload=True)
3. 排查工作设备权限拦截规则
工作设备常见的安全限制会拦截Python进程的内存操作,按如下步骤验证:
- 右键点击你运行代码用的IDE/终端,选择「以管理员身份运行」后重新执行测试代码
- 临时关闭设备上的杀毒软件、EDR等安全防护工具的进程拦截规则,再测试运行
- 如果设备加入了企业域,联系IT确认是否有针对Python进程的内存访问限制策略
4. 本地加载规避Torch Hub依赖
如果以上方法都无法解决Hub加载的问题,直接用本地源码加载Yolov5,跳过Hub的远程拉取逻辑:
- 手动下载Yolov5源码到本地有权限的目录,安装好所有依赖
- 修改模型加载代码为本地路径加载:
import torch # 替换为你本地存放Yolov5源码的文件夹路径,source参数指定为local model = torch.hub.load('./yolov5', 'yolov5s', source='local')
内容的提问来源于stack exchange,提问作者Zod
相关产品推荐
相关产品推荐

