YOLOv8 训练时 Numpy 不可用的排查记录
记录 YOLOv8 训练时遇到 RuntimeError: Numpy is not available 的排查过程和解决方法。
支持通配符SSL证书、多域名证书、IP证书。适配ACME接口, 支持Zerossl、Let's Encrypt和Google等渠道。登录已有账号
2026-07-10 12:00:46 CUDA PyTorch 版本兼容 降级
配环境的时候很容易遇到这种情况:机器上的 CUDA 版本太新,PyTorch 官方还没适配,直接装就报错或者跑不起来。
这种时候老老实实把 CUDA 降下去,再装对应的 PyTorch 版本,流程其实不复杂,就是几个地方要留意。
先去 PyTorch 官网看清楚你需要的 PyTorch 版本到底支持哪些 CUDA。
比如 PyTorch 2.1.0 支持 CUDA 11.8 和 12.1,PyTorch 1.12.0 就只能到 11.3 和 10.2。知道了这个范围,再决定降到哪个 CUDA 版本。
驱动这边也要看一眼。
nvidia-smi 输出里会有一行 “CUDA Version”,那表示当前驱动最高能支持到哪个 CUDA 版本。你要装的 CUDA 版本不能超过这个值,而且像 CUDA 12.1 要求驱动版本不低于 525.60.13,如果驱动太低,得先去 NVIDIA 官网升级驱动。
确定目标版本之后,开始降 CUDA。
Windows 下操作这样:先去控制面板里的程序和功能,找到 CUDA Toolkit 卸载掉。卸载完之后,安装目录一般还在,比如 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA,手动删掉。注册表也可以清理一下,Win+R 输入 regedit,找到 HKEY_LOCAL_MACHINE\SOFTWARE\NVIDIA Corporation\CUDA 项删掉(这步小心点,不熟悉注册表的话建议先备份)。
这些都做完重启电脑。然后去 NVIDIA CUDA 工具包存档页面下载目标版本的安装包,比如 11.8,正常安装就行。
Linux 下的话,先用包管理器把 CUDA 卸了。
Ubuntu/Debian 一般是 sudo apt-get purge cuda,再把 /usr/local/cuda 整个目录删掉,防止残留。然后编辑 ~/.bashrc 或者 ~/.zshrc,把之前设置的环境变量里关于 CUDA 的路径删掉,比如 export PATH=/usr/local/cuda/bin:$PATH 这类行。重启系统。接着去 NVIDIA CUDA 存档下载对应版本的 .run 文件,执行 sudo sh cuda_11.8.0_*.run 安装。
CUDA 降好之后,建议新建一个 conda 环境来装 PyTorch,避免和系统其他 Python 包冲突。比如 conda create -n pytorch_env python=3.10,激活环境后再装 PyTorch。
用 pip 安装指定 CUDA 版本的 PyTorch,命令大概长这样(以 CUDA 11.8 为例):
pip install torch==2.1.0+cu118 torchvision==0.16.0+cu118 --index-url https://download.pytorch.org/whl/cu118
也可以用 conda 装,命令是:
conda install pytorch==2.1.0 torchvision==0.16.0 cudatoolkit=11.8 -c pytorch
装完之后验证一下,避免自欺欺人。
import torch
print(torch.version.cuda) # 应该输出 11.8
print(torch.cuda.is_available()) # True
print(torch.__version__) # 2.1.0
如果输出没问题,GPU 也正常识别,基本就搞定了。
平时需要快速检查驱动支持的最高 CUDA 版本,除了看完整 nvidia-smi,还可以直接用这条命令:
nvidia-smi | grep "CUDA Version"
另外,把所有验证信息一次性打出来可以保存成脚本,方便以后排查:
import torch
print(f"PyTorch版本: {torch.__version__}")
print(f"CUDA版本: {torch.version.cuda}")
print(f"GPU可用性: {torch.cuda.is_available()}")
说两个常见报错。
如果碰到 CUDA version mismatch,大概率是 PyTorch 编译时用的 CUDA 版本和当前运行的 CUDA 工具包不一致,要么把 PyTorch 换成匹配的 CUDA 后缀重装,要么把 CUDA 工具包调整到对应版本。驱动不兼容的话,nvidia-smi 里驱动版本明显太低,直接去 NVIDIA 驱动下载页面装个高版本驱动,重启机器就好了。
整个流程走完,CUDA、驱动、PyTorch 版本的对应关系理顺,后面跑模型基本就不会再因为这些版本问题报错了。
上一篇: 插件安装失败?我踩过的坑和排查思路
记录 YOLOv8 训练时遇到 RuntimeError: Numpy is not available 的排查过程和解决方法。
在 PaddleOCR 开发中因 NumPy 版本不兼容引发各种 ImportError 的经历和一套经过验证的解决方案。
作为PyTorch开发者,你是否经常遇到“sizes of tensors must match except in dimension X”的报错?这篇踩坑日记将手把手教你如何避免和解决这些恼人的维度问题。我们从代码层面出发,详细讲解如何通过统一预处理、验证模型IO、动态调整全连接层以及处理变长数据,构建健壮的训练流程,告别频繁的调试。
还在为PyTorch导入时恼人的iJIT_NotifyEvent符号缺失错误而烦恼吗?本文将深入剖析其根源——PyTorch与Intel运行时库的版本冲突,并提供一系列系统化的解决方案,包括MKL版本兼容性配置、切换至OpenBLAS以及环境变量修复。更有实用的预防措施,助你彻底告别这类版本依赖“噩梦”,确保PyTorch环境的稳定运行。
`@Validated`注解不工作让你头疼?别急!我们为你准备了一份超实用的排查指南。从依赖缺失到代理失效,从注解位置到嵌套对象,逐一揭示其失效的隐秘角落。告别盲目调试,轻松掌握高效解决方案,让你的代码校验体系坚不可摧。