一、前言

Ultralytics 是一个统一的深度学习框架,支持 YOLOv5、YOLOv8、YOLO11 等多个版本的模型权重。本文将基于 Ubuntu 22.04 和 双 NVIDIA RTX 3090 显卡,记录从系统准备到成功运行 YOLO11 推理的全过程。每一步都配有验证命令,确保你能一次通过。

环境概览

  • 操作系统:Ubuntu 22.04.5 LTS

  • 显卡:NVIDIA GeForce RTX 3090 × 2(24GB 显存/卡)

  • 驱动版本:595.84

  • CUDA 版本:13.2(驱动支持)/ 12.4(PyTorch 自带)

  • Python 版本:3.10.12

  • PyTorch 版本:2.6.0+cu124

  • Ultralytics 版本:8.4.123


二、系统准备

2.1 更新系统与安装基础工具

打开终端,执行:

bash

sudo apt update && sudo apt upgrade -y
sudo apt install build-essential dkms linux-headers-$(uname -r) -y

2.2 禁用开源 Nouveau 驱动

Nouveau 驱动可能与 NVIDIA 官方驱动冲突,必须禁用。

bash

sudo bash -c "echo -e 'blacklist nouveau\noptions nouveau modeset=0' > /etc/modprobe.d/blacklist-nouveau.conf"
sudo update-initramfs -u
sudo reboot

重启后,运行以下命令确认 Nouveau 已被禁用(应无输出):

bash

lsmod | grep nouveau

三、安装 NVIDIA 驱动

3.1 查看推荐驱动版本

bash

ubuntu-drivers devices

根据输出选择推荐版本(本文使用 595),直接安装:

bash

sudo apt install nvidia-driver-595 -y
sudo reboot

3.2 验证驱动

bash

nvidia-smi

预期输出:

text

+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 595.84                 Driver Version: 595.84         CUDA Version: 13.2     |
+-----------------------------------------+------------------------+----------------------+
|   0  NVIDIA GeForce RTX 3090        Off | 00000000:5E:00.0 Off |                  N/A |
|   1  NVIDIA GeForce RTX 3090        Off | 00000000:D8:00.0 Off |                  N/A |
+-----------------------------------------+------------------------+----------------------+

看到两张显卡和 CUDA 版本即代表成功。


四、安装 CUDA Toolkit(可选但推荐)

虽然 PyTorch 自带了 CUDA 运行时,但完整的 CUDA Toolkit 有助于编译第三方扩展,避免头文件缺失。

4.1 添加 CUDA 软件源

bash

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin
sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/13.2.0/local_installers/cuda-repo-ubuntu2204-13-2-local_13.2.0-595.45.04-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2204-13-2-local_13.2.0-595.45.04-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu2204-13-2-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update

4.2 安装 CUDA Toolkit

bash

sudo apt-get install cuda-toolkit-13-2 -y

4.3 配置环境变量

将以下内容添加到 ~/.bashrc

bash

export PATH=/usr/local/cuda-13/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-13/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

使配置生效:

bash

source ~/.bashrc

验证:

bash

nvcc --version

应显示 CUDA 13.2 版本信息。


五、创建 Python 虚拟环境

为避免包冲突,推荐使用 Python 自带的 venv

5.1 安装 venv 支持

如果系统提示 ensurepip 不可用,需安装对应包:

bash

sudo apt install python3.10-venv -y

5.2 创建并激活环境

bash

python3 -m venv ~/ultralytics_env
source ~/ultralytics_env/bin/activate

激活后,终端前缀变为 (ultralytics_env)

验证 Python 路径是否正确:

bash

which python
# 应输出 /home/username/ultralytics_env/bin/python

六、安装 PyTorch(GPU 版)

6.1 升级 pip

bash

pip install --upgrade pip

6.2 安装 CUDA 12.4 版本的 PyTorch

bash

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

选择 12.4 是因为它是 PyTorch 官方长期支持的稳定版,且与驱动 595 完全兼容。

6.3 验证 PyTorch 与 GPU

bash

python -c "import torch; print(f'PyTorch: {torch.__version__}'); print(f'CUDA可用: {torch.cuda.is_available()}'); print(f'GPU数量: {torch.cuda.device_count()}'); print(f'第一张卡: {torch.cuda.get_device_name(0)}')"

预期输出:

text

PyTorch: 2.6.0+cu124
CUDA可用: True
GPU数量: 2
第一张卡: NVIDIA GeForce RTX 3090

七、安装 Ultralytics 框架并验证

7.1 安装 Ultralytics

bash

pip install ultralytics

7.2 综合验证(自动下载 YOLO11n 权重)

bash

python -c "
import torch
from ultralytics import YOLO

print('='*50)
print('环境验证报告')
print('='*50)
print(f'Python版本: {__import__(\"sys\").version}')
print(f'PyTorch版本: {torch.__version__}')
print(f'CUDA可用: {torch.cuda.is_available()}')
print(f'GPU数量: {torch.cuda.device_count()}')
for i in range(torch.cuda.device_count()):
    print(f'  GPU {i}: {torch.cuda.get_device_name(i)}')
model = YOLO('yolo11n.pt')
print('✅ Ultralytics 框架与 YOLO11n 模型加载成功!')
print('='*50)
print('✅ 所有组件验证通过!')
"

该命令会自动从官方源下载 yolo11n.pt 权重文件(约 6MB)并加载,验证整个流程。


八、快速推理测试

bash

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

首次运行会自动下载示例图片并执行推理,输出类似:

text

Ultralytics 8.4.123 🚀 Python-3.10.12 torch-2.6.0+cu124 CUDA:0 (NVIDIA GeForce RTX 3090, 24126MiB)
YOLO11n summary (fused): 100 layers, 2,616,248 parameters, 0 gradients, 6.5 GFLOPs
image 1/1 /home/username/bus.jpg: 640x480 4 persons, 1 bus, 11.2ms
Speed: 32.4ms preprocess, 11.2ms inference, 23.1ms postprocess per image
Results saved to /home/username/runs/detect/predict

恭喜!你的 Ultralytics 环境已完全就绪 🎉


九、常见问题与排障

问题现象解决办法
conda: command not found系统未安装 Conda,改用 Python 自带的 venv 即可(见第五章)
ensurepip not available执行 sudo apt install python3.10-venv -y 安装 venv 支持
模型下载速度慢或超时由于网络原因(如防火墙限制),可手动下载权重文件放入 ~/.cache/ultralytics/ 目录

附:PyTorch & Ultralytics 安装依赖解析

一、PyTorch 依赖结构与清单

安装命令:

bash

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

共安装 27 个包,总下载量约 2.9 GB,分类如下:

类别包名版本说明
PyTorch 核心torch2.6.0+cu124主框架(768 MB)
torchvision0.21.0+cu124视觉工具库(7.3 MB)
torchaudio2.6.0+cu124音频工具库(3.4 MB)
NVIDIA CUDA 运行时库nvidia-cuda-nvrtc-cu1212.4.127运行时编译库(24.6 MB)
nvidia-cuda-runtime-cu1212.4.127CUDA 运行时 API(883 KB)
nvidia-cuda-cupti-cu1212.4.127性能分析工具(13.8 MB)
nvidia-nvtx-cu1212.4.127工具扩展库(99 KB)
nvidia-nvjitlink-cu1212.4.127JIT 链接器(21.1 MB)
NVIDIA 数学与加速库nvidia-cudnn-cu129.1.0.70深度神经网络加速(664.8 MB)
nvidia-cublas-cu1212.4.5.8基础线性代数(363.4 MB)
nvidia-cufft-cu1211.2.1.3快速傅里叶变换(211.5 MB)
nvidia-curand-cu1210.3.5.147随机数生成(56.3 MB)
nvidia-cusolver-cu1211.6.1.9线性求解器(127.9 MB)
nvidia-cusparse-cu1212.3.1.170稀疏矩阵运算(207.5 MB)
nvidia-cusparselt-cu120.6.2稀疏张量加速(150.1 MB)
多卡通信库nvidia-nccl-cu122.21.5多 GPU 通信(188.7 MB)
GPU 编译器triton3.2.0GPU 内核编译器(166.6 MB)
Python 依赖numpy2.2.6科学计算(16.8 MB)
pillow12.3.0图像处理(6.9 MB)
networkx3.4.2图计算(1.7 MB)
sympy1.13.1符号计算(6.2 MB)
mpmath1.3.0高精度数学(536 KB)
jinja23.1.6模板引擎(134 KB)
MarkupSafe3.0.3安全字符串处理(20 KB)
typing-extensions4.16.0类型扩展(45 KB)
filelock3.32.3文件锁(98 KB)
fsspec2026.7.0文件系统接口(206 KB)

核心依赖:PyTorch 的核心依赖是 nvidia-* 系列 CUDA 库和 triton,它们共同构成了 GPU 加速的完整底层链路。


二、Ultralytics 依赖结构与清单

安装命令:

bash

pip install ultralytics
依赖包版本要求说明
核心计算
torch>=1.8.0深度学习引擎(检测到已安装则自动跳过)
torchvision>=0.9.0视觉数据处理
numpy>=1.22.0数值计算
图像处理
opencv-python>=4.6.0图像/视频读写与处理
pillow>=7.1.2图像基础处理(PIL)
数据可视化
matplotlib>=3.2.2结果绘图
seaborn>=0.11.0统计图表(可选)
配置与工具
pyyaml>=5.3.1YAML 配置文件解析
tqdm>=4.64.0进度条显示
psutil系统资源监控
ipython交互式环境支持(可选)

核心依赖torch + torchvision 是 Ultralytics 的核心运行依赖,其他均为辅助工具库。


三、为何必须独立安装 PyTorch?

1 问题根源:PyPI 文件大小限制
平台文件大小限制能否上传 GPU 版 PyTorch?
PyPI(Python 官方仓库)≈ 100 MB❌ 否(GPU 版达 700 MB ~ 2 GB)
PyTorch 官方索引源无限制✅ 是
  • PyPI 上默认的 torch 版本是 仅支持 CPU 的版本(约 200 MB)。

  • 支持 CUDA 的 GPU 版本必须通过 --index-url 从 PyTorch 专属仓库获取。

2 两种安装路径的结果对比
安装方式过程GPU 是否可用
直接 pip install ultralyticspip 从 PyPI 拉取 CPU 版 PyTorch❌ torch.cuda.is_available() = False
先装 GPU PyTorch,再装 Ultralytics从官方索引安装 GPU 版;pip 检测已存在,跳过安装✅ torch.cuda.is_available() = True
3 Pip 的依赖跳过机制

当环境中已安装 torch 时,pip install ultralytics 的内部逻辑:

  1. 解析 ultralytics 的依赖声明,识别需要 torch>=1.8.0

  2. 检查当前环境中是否已安装 torch 且版本符合要求。

  3. 若满足条件:完全跳过 torch 和 torchvision 的下载与安装,直接使用已有版本。

  4. 仅安装 Ultralytics 自身及其他未满足的轻量级依赖。

4 标准正确安装流程

bash

# 第一步:安装 GPU 版 PyTorch(必须单独执行)
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124

# 第二步:安装 Ultralytics(自动复用已安装的 PyTorch)
pip install ultralytics

总结:独立安装 PyTorch 并非冗余步骤,而是由于 PyPI 的大小限制导致 GPU 版必须从专属源获取。理解这一背景,是正确配置 YOLO 开发环境的关键前提。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐