news 2026/9/9 20:48:23

YOLO26 GPU环境搭建:从零开始的保姆级CUDA与PyTorch教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
YOLO26 GPU环境搭建:从零开始的保姆级CUDA与PyTorch教程

说实话,每次看到群里有人问“为什么我的YOLO训练只用CPU跑”、“CUDA不可用怎么回事”,我都能猜到七八成原因:多半是PyTorch装成了CPU版,或者CUDA版本和驱动对不上。这种问题坑了无数新人,也让我觉得有必要写一篇真正从头开始的保姆级教程。

这篇文章要做的,就是基于Ultralytics生态的YOLO26,从一台“干净”的电脑开始,完成GPU环境搭建、PyTorch安装、Ultralytics部署、数据集准备,以及模型训练的完整流程。全程以NVIDIA显卡为例,因为目前YOLO系列的GPU训练生态基本都围绕CUDA展开。无论你是刚接触目标检测的学生、准备落地项目的开发者,还是被各种环境报错劝退的初学者,按这篇教程走一遍,大概率能顺利跑到训练结束。

先提前打个预防针:环境搭建本身不复杂,复杂的是版本不匹配。我会先把那套版本关系讲清楚,再动手敲命令。这样即便以后遇到没见过的报错,你也能自己判断问题出在哪一层。

1. 动手之前:先搞清楚GPU、驱动、CUDA与PyTorch的协作关系

1.1 为什么很多人装完环境跑不了

我见过太多人卡在同一个地方:按照某个教程装完了Anaconda,pip 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没问题;要是想跑yolo26x,batch 16可能直接爆显存。我建议新手根据显存选模型:

显存大小推荐模型推荐batch推荐imgsz
4GB ~ 6GByolo26n8640
6GB ~ 10GByolo26s16640
10GB以上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。

所以正确流程是:

  1. 查看驱动支持的CUDA版本
  2. 选择一个小于等于驱动支持版本的PyTorch cu版本
  3. 安装这个版本的PyTorch
  4. 再安装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 python=3.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,常见原因有三种:

  1. 装的还是CPU版torch,回到3.2重装
  2. 驱动版本太低,更新驱动
  3. 显卡是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(source="bus.jpg", device=0)

这里的yolo26n.pt是YOLO26的nano版本预训练权重。如果本地没有,Ultralytics会自动从官方仓库下载。下载慢的话,可以手动去Ultralytics的Release页面下载,把文件放到当前目录即可。

bus.jpg是Ultralytics官方测试图,也可以换成你自己的图片路径。predict方法里的 source 参数支持:

  • 单张图片路径
  • 文件夹路径(会遍历所有图片)
  • 视频文件路径
  • 摄像头设备号(如0)
  • 或直接一个URL

推理结果会保存在runs/detect/predict目录下,包括检测框、类别标签和置信度。第一次跑通推理,恭喜你,环境已经彻底没问题了。

4.3 确认推理运行在GPU上

虽然Ultralytics默认会自动选择设备,但还是建议你确认一下。有两种方式:

第一种,在predict时显式指定device=0,这样如果GPU不可用会直接报错,不会静默降级。

第二种,在推理过程中打开另一个终端运行nvidia-smi,观察GPU使用率是否跳起来。如果GPU使用率从0%升到几十%,那没问题。

如果看到CUDA out of memory,说明图片太大或者显存太小。这时可以降低imgsz参数:

results = model.predict(source="bus.jpg", device=0, imgsz=640)

刚接触的朋友可能会忽略设备参数的细节,导致模型一直在CPU上默默推理。虽然结果一样,但速度差了二三十倍。第一次跑通后,一定要确认日志里没有“Using CPU”字样。

5. 准备自己的数据集:从标注到训练配置

5.1 标注工具选型与标注流程

环境搞定之后,真正的项目工作开始:准备自己的数据集。YOLO系列使用txt格式的标签,每张图片对应一个同名txt文件,文件里每一行表示一个目标:类别ID、中心点x、中心点y、宽度、高度(都是归一化

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/9 20:45:43

从“无标题”到高效命名:项目定义与内容拆解实操指南

项目标题: 【无标题】 项目正文: 关键词: 摘要描述: “无标题”其实是常态:先别急着写标题,先想清楚这个项目到底是什么 每次看到手头项目备注栏里写着“无标题”三个字,我都特别理解。我自己也干过这事儿:新建文件夹的时候懒得…

作者头像 李华
网站建设 2026/9/9 20:44:53

中文信息处理期末作业:报告写作与7z压缩包实操指南

简介:山西大学中文信息处理课程期末作业资源包,面向中文信息处理、自然语言处理或深度学习相关课程的学生与入门学习者,可作为实验设计、报告撰写和模型实现的参考。压缩包采用7z格式,大小约38.21MB,包含多份实验报告、…

作者头像 李华
网站建设 2026/9/9 20:43:39

Windows本地部署大模型:Ollama安装、私有化部署与API调用指南

说真的,在Windows上跑本地大模型这件事,我前前后后折腾了小半年。最开始是用Python写推理脚本,又是装PyTorch又是配CUDA,搞了一整天模型还没跑起来;后来换了Ollama,从安装到把模型跑起来,前后加…

作者头像 李华