说实话每次看到群里有人问“为什么我的YOLO训练只用CPU跑”、“CUDA不可用怎么回事”我都能猜到七八成原因多半是PyTorch装成了CPU版或者CUDA版本和驱动对不上。这种问题坑了无数新人也让我觉得有必要写一篇真正从头开始的保姆级教程。这篇文章要做的就是基于Ultralytics生态的YOLO26从一台“干净”的电脑开始完成GPU环境搭建、PyTorch安装、Ultralytics部署、数据集准备以及模型训练的完整流程。全程以NVIDIA显卡为例因为目前YOLO系列的GPU训练生态基本都围绕CUDA展开。无论你是刚接触目标检测的学生、准备落地项目的开发者还是被各种环境报错劝退的初学者按这篇教程走一遍大概率能顺利跑到训练结束。先提前打个预防针环境搭建本身不复杂复杂的是版本不匹配。我会先把那套版本关系讲清楚再动手敲命令。这样即便以后遇到没见过的报错你也能自己判断问题出在哪一层。1. 动手之前先搞清楚GPU、驱动、CUDA与PyTorch的协作关系1.1 为什么很多人装完环境跑不了我见过太多人卡在同一个地方按照某个教程装完了Anacondapip install ultralytics 也成功了结果一跑训练日志里输出“Using CPU”或者提示CUDA不可用。然后开始怀疑驱动有问题重装驱动、重装CUDA折腾一晚上最后发现只是PyTorch装成了CPU版。这种问题的根源在于很多人没理解GPU计算的版本链条。要让YOLO26跑在GPU上需要四层东西协作第一层NVIDIA显卡驱动负责让操作系统识别GPU并暴露底层接口第二层CUDA运行库PyTorch安装包里自带的那部分负责把PyTorch的运算指令翻译成GPU能执行的指令第三层PyTorch深度学习框架它编译的时候针对某个CUDA版本生成了对应的二进制代码第四层Ultralytics它调用PyTorch的接口本身不关心CUDA的细节换句话说Ultralytics → PyTorch → CUDA库 → 驱动是一条从上到下的依赖链。链条里任何一环版本对不上GPU就用不了。最常见的断裂就是第三层PyTorch装了CPU版导致上层怎么调都调不到GPU。1.2 查看自己的硬件配置动手之前先把家里情况摸清楚。你的显卡型号、显存大小、驱动版本直接决定你能跑多大的模型、多大的batch size。Windows下查看显卡任务管理器 → 性能 → GPU能看到GPU型号、专用显存、驱动版本。如果任务管理器里没有GPU选项大概率是驱动没装好先去NVIDIA官网装驱动。Linux下查看终端运行 nvidia-smi能看到GPU型号、显存总量、当前驱动版本、以及右上角有个CUDA Version: 12.x这个后面要重点讲。显存大小怎么影响训练简单说YOLO26系列有很多尺寸n、s、m、l、x模型越大显存占用越高。6GB显存跑yolo26n/yolo26s很舒服batch 16、imgsz 640没问题要是想跑yolo26xbatch 16可能直接爆显存。我建议新手根据显存选模型显存大小推荐模型推荐batch推荐imgsz4GB ~ 6GByolo26n86406GB ~ 10GByolo26s1664010GB以上yolo26m等16 ~ 32640 ~ 768这个表是我实测过的参考值具体还要看数据集图片本身的复杂度但作为起点足够用了。1.3 版本链条的匹配逻辑关于CUDA版本有一个几乎人人都会误解的点nvidia-smi 右上角显示的CUDA Version: 12.4并不是你电脑里已经装了CUDA Toolkit它只是你当前驱动“最高支持”的CUDA版本。这是什么意思驱动相当于一栋楼的配电系统CUDA是各种家电的插头标准。驱动支持的CUDA版本越高你能用的“家电”PyTorch等就越多。比如你的驱动显示CUDA Version: 12.4意味着它可以运行最高12.4版本的CUDA应用。而如果你需要跑一个cu121构建的PyTorch那12.4 12.1完全没问题。PyTorch官方提供多套GPU版本常见的有cu118、cu121、cu124等。这几套分别对应CUDA 11.8、12.1、12.4。需要注意的是这里的cu版本是PyTorch编译时所用的CUDA版本它自带了需要的CUDA运行库所以你通常不需要手动安装完整的CUDA Toolkit。所以正确流程是查看驱动支持的CUDA版本选择一个小于等于驱动支持版本的PyTorch cu版本安装这个版本的PyTorch再安装Ultralytics用表格整理一下常见对应关系| 驱动最低版本(Ubuntu) | 驱动最低版本(Windows) | 支持的CUDA版本 | PyTorch构建 | | 450.80.02 | 452.39 | 11.0 | cu110 | | 520.61.05 | 522.25 | 11.8 | cu118 | | 525.60.13 | 527.41 | 12.1 | cu121 | | 550.54.14 | 551.86 | 12.4 | cu124 |如果你的驱动低于表格中的最低版本就去NVIDIA官网更新驱动。更新驱动是件很安全的事确认显卡型号后下载对应驱动即可。2. 搭建Python独立环境Anaconda虚拟环境实操2.1 为什么不建议直接用系统Python很多老教程直接让你在系统Python里pip install严格说也能用但非常不推荐。原因很简单你以后的项目不止YOLO26一个。今天这个项目要torch 2.0明天那个项目要torch 1.13后天的项目可能还要Python 3.9。如果全装一个环境里依赖冲突会让你疯掉。用Anaconda的虚拟环境相当于给每个项目开一间独立房间。房间里的Python版本、包版本互不影响。装坏了随时删除重建成本极低。对于深度学习这种依赖特别重的场景虚拟环境几乎是必须的。2.2 安装Anaconda并创建YOLO26环境Anaconda从官网下载即可如果下载慢国内可以用清华镜像的anaconda目录。Windows安装的时候有个勾选项把Anaconda加入PATH。我的建议是勾上这样cmd和PowerShell里能直接用conda命令。如果忘记勾就用Anaconda Prompt操作效果一样。装好后打开终端Windows用Anaconda Prompt或者cmd执行conda create -n yolo26 python3.11 -y这里创建了一个叫yolo26的环境Python版本3.11。之所以选3.11是因为PyTorch和Ultralytics对其支持很成熟3.12/3.13在某些显卡驱动和CUDA组合下容易遇到兼容性小问题。新手请选择一个被验证过的稳定组合Python 3.10 或 3.11。创建完成后激活环境conda activate yolo26你会发现终端开头多了(yolo26)前缀说明已经进入虚拟环境。后面所有命令都要在这个环境下进行。2.3 配置pip国内镜像源为什么要配置如果你直接用默认的PyPI源下载速度可能只有几十KB/s一个torch好几个G能下到怀疑人生。配置国内镜像后速度能提升几十倍。pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple这条命令会把清华PyPI镜像设为默认源。以后所有pip install默认走镜像速度飞快。除了清华阿里云镜像https://mirrors.aliyun.com/pypi/simple/也不错二选一即可。但这里有个关键提醒后面安装PyTorch GPU版时不要用这个清华源因为PyTorch的CUDA版本wheel并没有在清华PyPI镜像里完整同步或者同步延迟较大。安装PyTorch GPU版时需要明确指定PyTorch官方源后面第3章详细说。换句话说清华源用来装普通包ultralytics、opencv等PyTorch单独用官方源。3. PyTorch GPU版安装与验证最容易翻车的一步3.1 确定自己该装哪个CUDA版本先运行 nvidia-smi找到右上角的CUDA Version。比如显示CUDA Version: 12.4那么你可以安装 cu121 或 cu124 版本的PyTorch。如果显示的是11.8那装cu118更稳妥也可以升级驱动后装更高的cu版本。关于怎么选我的建议是驱动支持的最高CUDA版本大于等于12.1直接选cu121或cu124驱动支持的CUDA版本在12.0以下更新驱动或者选一个与驱动匹配的旧版PyTorch一个经验是PyTorch版本越新通常对显卡的兼容性和训练速度优化越好。所以如果你的驱动不是太老优先选择PyTorch官方当前推荐的最新cu版本。3.2 安装PyTorch GPU版打开PyTorch官网 get-started选择你的操作系统、包管理器pip、CUDA版本网站会生成对应的安装命令。以cu121为例pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121注意几个点如果前面配置了清华源这里加上--index-url可以覆盖全局源确保从PyTorch官方源下载GPU版千万别直接敲pip install torch在Windows下默认源安装的torch是CPU版这是无数新手踩坑的重灾区torchvision的版本必须和torch匹配用上面命令一起装就不会错因为torch的wheel包很大2GB多官方源下载速度可能也不快。如果实在太慢可以试试国内的PyTorch镜像比如阿里云的pytorch-wheels镜像或者清华的pytorch源。但要注意不要用北大、豆瓣那些只同步了PyPI的镜像它们没有完整的CUDA wheel。3.3 验证GPU可用性安装完成后先别急着装Ultralytics。先花30秒验证PyTorch能否调用GPU。在终端执行python -c import torch; print(torch:, torch.__version__); print(cuda:, torch.version.cuda); print(available:, torch.cuda.is_available())重点看最后一行。如果输出available: True说明GPU环境已经打通可以继续往下走。如果输出False常见原因有三种装的还是CPU版torch回到3.2重装驱动版本太低更新驱动显卡是AMD/Intel老显卡或核显不支持CUDA这种情况只能用CPU或者去关注Ultralytics对其他后端如ROCm、DirectML的支持再做一个更直观的测试python import torch x torch.rand(3, 3).cuda() print(x)如果这段能输出一个3x3的矩阵说明GPU计算真正可用。4. 安装Ultralytics并让YOLO26跑通第一次推理4.1 安装Ultralytics包确认GPU可用后接下来就非常顺了。激活环境执行pip install ultralytics它会自动把ultralytics及相关依赖opencv-python、pandas、matplotlib等装好。如果你之前已经装过想升级到最新版pip install -U ultralytics装完验证一下版本python -c import ultralytics; print(ultralytics.__version__)能看到版本号说明装好了。Ultralytics的版本迭代很快新版本经常会修复bug和增加新模型所以我建议尽量用最新版。4.2 下载预训练权重完成第一次推理Ultralytics生态最大的好处就是代码极简。打开Python环境几行代码就能跑通推理from ultralytics import YOLO model YOLO(yolo26n.pt) results model.predict(sourcebus.jpg, device0)这里的yolo26n.pt是YOLO26的nano版本预训练权重。如果本地没有Ultralytics会自动从官方仓库下载。下载慢的话可以手动去Ultralytics的Release页面下载把文件放到当前目录即可。bus.jpg是Ultralytics官方测试图也可以换成你自己的图片路径。predict方法里的 source 参数支持单张图片路径文件夹路径会遍历所有图片视频文件路径摄像头设备号如0或直接一个URL推理结果会保存在runs/detect/predict目录下包括检测框、类别标签和置信度。第一次跑通推理恭喜你环境已经彻底没问题了。4.3 确认推理运行在GPU上虽然Ultralytics默认会自动选择设备但还是建议你确认一下。有两种方式第一种在predict时显式指定device0这样如果GPU不可用会直接报错不会静默降级。第二种在推理过程中打开另一个终端运行nvidia-smi观察GPU使用率是否跳起来。如果GPU使用率从0%升到几十%那没问题。如果看到CUDA out of memory说明图片太大或者显存太小。这时可以降低imgsz参数results model.predict(sourcebus.jpg, device0, imgsz640)刚接触的朋友可能会忽略设备参数的细节导致模型一直在CPU上默默推理。虽然结果一样但速度差了二三十倍。第一次跑通后一定要确认日志里没有“Using CPU”字样。5. 准备自己的数据集从标注到训练配置5.1 标注工具选型与标注流程环境搞定之后真正的项目工作开始准备自己的数据集。YOLO系列使用txt格式的标签每张图片对应一个同名txt文件文件里每一行表示一个目标类别ID、中心点x、中心点y、宽度、高度都是归一化