环境准备:Ubuntu/Conda环境搭建、CUDA/cuDNN安装、PyTorch框架配置、YOLO源码下载

说实话,很多同学一上来就急着调模型、跑推理,结果环境没配好,折腾两天连个demo都跑不起来。我见过太多这样的案例了。环境准备这事儿,看着基础,但坑是真不少。今天咱们就把这套流程捋清楚,你跟着走一遍,后面30章基本不会因为环境问题卡壳。

本章核心目标:在一台干净的Ubuntu机器上,从零搭建一套能跑YOLOv8/v9/v10的深度学习环境。说白了就是:系统→驱动→CUDA→PyTorch→源码,一条龙搞定。

2.1 Ubuntu系统与Conda环境搭建

我个人习惯用Ubuntu 22.04 LTS,兼容性好,社区支持也最活跃。如果你用的是20.04,问题也不大,但注意内核版本别太老。

先确认系统版本:

lsb_release -a
uname -m  # 确认是x86_64,ARM用户后面要注意

然后装Conda。我推荐Miniconda,轻量、干净,别装Anaconda全家桶,太臃肿了。

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
# 一路yes,最后source ~/.bashrc

验证一下:

conda --version
conda info

小技巧:我习惯在.condarc里配一下国内镜像源,不然下载慢到怀疑人生。清华源或者中科大源都行,自己搜一下配置方法。

接下来创建YOLO专用环境。我建议Python版本锁定3.10,太新或太老都可能跟某些库打架。

conda create -n yolo_env python=3.10 -y
conda activate yolo_env

嗯,这里要注意:每次开新终端,记得先conda activate yolo_env。我曾经有个学生,配完环境忘了激活,在base里装了一堆包,最后版本全乱套了。

2.2 CUDA与cuDNN安装

这是整个环境里最容易出幺蛾子的环节。我建议先查一下你的显卡支持什么CUDA版本:

nvidia-smi

看右上角的CUDA Version,那是你的驱动支持的最高版本。比如显示12.4,那你装CUDA 12.x都没问题。

我个人习惯用runfile安装,干净可控。去NVIDIA官网下载对应版本:

wget https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda_12.4.0_550.54.14_linux.run
sudo sh cuda_12.4.0_550.54.14_linux.run
# 注意:不要装驱动,只选CUDA Toolkit

装完配置环境变量:

export PATH=/usr/local/cuda-12.4/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-12.4/lib64:$LD_LIBRARY_PATH

验证:

nvcc --version

然后装cuDNN。去NVIDIA官网下载对应CUDA版本的cuDNN,解压后复制到CUDA目录:

tar -xvf cudnn-linux-x86_64-8.9.7.29_cuda12-archive.tar.xz
sudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda/include
sudo cp -P cudnn-*-archive/lib/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*

我曾经踩过的坑:cuDNN版本跟CUDA版本必须严格对应。有一次我图省事,随便下了个cuDNN,结果训练时loss直接nan,查了两天才发现是cuDNN不兼容。所以一定要去官网查兼容矩阵。

验证cuDNN:

cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

2.3 PyTorch框架配置

PyTorch安装其实是最简单的,但版本选择有讲究。我建议直接去PyTorch官网用命令行生成器,选对CUDA版本就行。

以CUDA 12.4为例:

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124

验证安装:

python -c "import torch; print(torch.__version__); print(torch.cuda.is_available())"

如果输出True,恭喜你,环境基本成了。

为什么我推荐pip而不是conda?因为PyTorch的conda包有时候版本滞后,而且跟系统CUDA的绑定容易出问题。pip安装更直接,版本也最新。

这里有个常见问题:明明nvidia-smi显示CUDA 12.4,但PyTorch却说cuda is not available。为什么会这样?

大概率是PyTorch版本跟驱动不匹配。比如你装了CUDA 11.8的PyTorch,但驱动只支持12.x,那就不行。解决办法:要么升级驱动,要么降PyTorch版本。

2.4 YOLO源码下载与依赖安装

我推荐用Ultralytics的官方仓库,支持YOLOv8/v9/v10,社区活跃,文档也全。

git clone https://github.com/ultralytics/ultralytics.git
cd ultralytics
pip install -e .

-e参数是editable模式,方便你改源码调试。我习惯这么装,后面改模型结构或者加自定义层都方便。

装完验证:

yolo predict model=yolov8n.pt source='https://ultralytics.com/images/bus.jpg'

如果能正常输出检测结果,说明环境全部就绪。

依赖清单速查表:

组件 推荐版本 备注
Ubuntu 22.04 LTS 20.04也可,注意内核
Python 3.10 兼容性最好
CUDA 12.x 根据驱动版本选
cuDNN 8.9.x 必须匹配CUDA
PyTorch 2.x 官网生成安装命令
Ultralytics 最新 pip install -e .

2.5 环境验证与常见问题排查

环境配完别急着跑,先做一轮完整验证:

  1. GPU驱动检查:nvidia-smi能看到GPU信息
  2. CUDA可用性:nvcc --version显示正确版本
  3. PyTorch GPU支持:torch.cuda.is_available()返回True
  4. YOLO推理测试:跑一张图片看结果

如果哪一步卡住了,别慌。我列几个常见问题:

问题1:torch.cuda.is_available()返回False
原因:PyTorch版本跟CUDA驱动不匹配
解决:卸载重装对应CUDA版本的PyTorch

问题2:YOLO推理报错ModuleNotFoundError: No module named 'ultralytics'
原因:没激活conda环境或者没装依赖
解决:conda activate yolo_env然后pip install -e .

问题3:训练时显存不足
原因:batch_size太大或者模型太大
解决:调小batch_size,或者换小模型如yolov8n

我曾经在一个项目里,客户服务器是Ubuntu 20.04,显卡是RTX 3090,驱动版本470,死活装不上CUDA 12.x。后来发现是驱动太老,升级到525就全通了。所以记住:驱动是一切的基础,先搞定驱动再谈别的。

YOLO环境搭建全流程 Ubuntu 22.04 LTS Miniconda + Python 3.10 CUDA 12.x + cuDNN PyTorch 2.x (GPU版) Ultralytics YOLO 关键检查点 ① nvidia-smi 确认驱动 ② nvcc --version 确认CUDA ③ torch.cuda.is_available() 常见避坑 • CUDA版本必须匹配驱动 • cuDNN必须匹配CUDA

环境配好之后,我建议你跑一个完整的训练+推理流程,确保所有组件协同工作。比如用yolov8n在COCO上训几个epoch,看看loss能不能正常下降。这一步虽然花点时间,但能帮你排除90%的潜在问题。

好了,环境准备就到这里。记住:配环境不是一次性的,后面换模型、换框架、换硬件都可能需要调整。但有了今天这套方法论,你至少知道从哪下手、怎么排查。