怒江傈僳族自治州网站建设_网站建设公司_动画效果_seo优化
2025/12/26 14:30:42 网站建设 项目流程

Ubuntu 18.04下GPU版PyTorch与YOLOv5环境搭建

在深度学习项目开发中,一个稳定、可复现的运行环境往往是成功的第一步。尤其是目标检测这类计算密集型任务,能否高效调用 GPU 资源直接决定了训练和推理的速度。Ubuntu 18.04 作为长期支持(LTS)版本,在科研和工业部署中仍被广泛使用,但其默认软件源相对陈旧,手动配置 CUDA 和深度学习框架时常遇到兼容性问题。

本文将带你从零开始,在Ubuntu 18.04上构建一套完整的GPU 加速 YOLOv5 开发环境。我们将采用轻量级的 Miniconda 管理 Python 环境,避免系统污染,并通过国内镜像源大幅提升依赖安装速度。整个过程经过实战验证,适用于本地工作站或远程服务器场景。


核心工具选择:为什么是 Miniconda?

在 Python 生态中,虚拟环境管理至关重要。我们选择Miniconda-Python3.10镜像而非完整 Anaconda,原因很实际:

  • 体积小:仅包含 conda、Python 和必要依赖,安装包不到 100MB。
  • 启动快:没有预装大量科学计算库,环境初始化更迅速。
  • 控制力强:所有第三方库按需安装,避免“包冲突”导致的诡异错误。
  • 多环境隔离:可为不同项目创建独立环境,互不干扰。

尤其在团队协作或论文复现时,这种“干净+可控”的策略能极大提升可维护性。你可以轻松导出environment.yml文件供他人一键还原环境。

实践建议:不要在全局 Python 环境中安装任何 AI 框架。一旦出现版本冲突,排查成本极高。


系统准备:硬件识别与基础组件安装

在动手前,请确认你的系统满足以下条件:

  • ✅ 运行 Ubuntu 18.04(桌面版或服务器版均可)
  • ✅ 配备 NVIDIA GPU(计算能力 ≥ 3.5,如 GTX 10xx / RTX 20/30/40 系列)
  • ✅ 已连接互联网并具备 sudo 权限
  • ✅ 显卡驱动未被 nouveau 占用

检查 GPU 是否被识别

首先查看 PCI 总线上是否有 NVIDIA 设备:

lspci | grep -i nvidia

如果输出类似NVIDIA Corporation GP107 [GeForce GTX 1050 Ti],说明硬件已被内核识别。

接着安装必要的编译工具链和内核头文件,这是后续安装闭源驱动的前提:

sudo apt update sudo apt install build-essential gcc g++ make sudo apt install linux-headers-$(uname -r)

这些组件确保了 dkms(Dynamic Kernel Module Support)能够为当前内核编译 NVIDIA 驱动模块。


屏蔽开源驱动:禁用 nouveau

Ubuntu 默认启用的nouveau是一款开源显卡驱动,但它与 NVIDIA 官方闭源驱动无法共存。若不提前禁用,会导致安装后黑屏或驱动加载失败。

编辑黑名单配置文件:

sudo vi /etc/modprobe.d/blacklist-nouveau.conf

写入以下内容:

blacklist nouveau options nouveau modeset=0

保存后更新 initramfs 并重启:

sudo update-initramfs -u sudo reboot

重启完成后,执行:

lsmod | grep nouveau

若无任何输出,则表示 nouveau 已成功屏蔽。

小贴士:有些用户会尝试用nomodeset内核参数临时绕过图形界面,但这只是权宜之计。彻底禁用才是长久之策。


安装 NVIDIA 显卡驱动

Ubuntu 提供了便捷的自动检测工具ubuntu-drivers,可以智能推荐最适合你显卡的驱动版本。

查看推荐选项:

ubuntu-drivers devices

输出示例:

driver : nvidia-driver-470 - distro non-free driver : nvidia-driver-450 - distro non-free

通常选择列表中最靠前的非 nouveau 选项即可。执行自动安装:

sudo ubuntu-drivers autoinstall

安装完成后再次重启系统:

sudo reboot

验证驱动状态:

nvidia-smi

正常情况下你会看到如下信息:

+-----------------------------------------------------------------------------+ | NVIDIA-SMI 470.182.03 Driver Version: 470.182.03 CUDA Version: 11.4 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | +-------------------------------+----------------------+----------------------+ | 0 GeForce RTX 3060 Off | 00000000:01:00.0 On | N/A | | 30% 45C P8 12W / 170W | 1024MiB / 12288MiB | 5% Default | +-------------------------------+----------------------+----------------------+

关键点:
- 驱动版本显示正确
- CUDA Version 字段存在(注意:这是驱动支持的最大 CUDA 版本,不是已安装的 Toolkit)

此时 GPU 已就绪,接下来就可以部署深度学习框架了。


安装 Miniconda 并配置环境

进入主目录下载 Miniconda 安装脚本:

mkdir ~/miniconda && cd ~/miniconda wget https://repo.anaconda.com/miniconda/Miniconda3-py310_23.1.0-Linux-x86_64.sh

运行安装程序:

bash Miniconda3-py310_23.1.0-Linux-x86_64.sh

按提示阅读协议并输入yes接受条款。路径建议保持默认(~/miniconda3),便于后续管理。

安装完成后刷新 shell 环境变量:

source ~/.bashrc

此时输入conda --version应能返回版本号。

使用清华源加速包下载

由于官方源位于海外,pip 和 conda 安装速度可能极慢。切换为清华大学镜像可显著提升体验:

# 添加 conda 清华源 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --set show_channel_urls yes # 设置 pip 使用清华源 pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

这样无论是conda install还是pip install都会优先从国内拉取资源。

关闭 base 环境自动激活

每次打开终端都自动进入(base)会影响脚本执行和其他语言环境。建议关闭:

conda config --set auto_activate_base false

此后仅在需要时手动激活基础环境:

conda activate

创建 YOLOv5 专用虚拟环境

为保证项目独立性,我们新建一个名为yolov5的环境:

conda create -n yolov5 python=3.10

激活该环境:

conda activate yolov5

终端前缀变为(yolov5)表示切换成功。此后所有操作都将局限于这个沙箱环境中。


安装 GPU 版 PyTorch

YOLOv5 基于 PyTorch 构建,必须安装支持 CUDA 的 GPU 版本才能发挥显卡性能。

根据nvidia-smi中显示的 CUDA Version(例如 11.4),前往 PyTorch 官网 获取对应安装命令。以 CUDA 11.8 为例:

pip install torch==2.0.1+cu118 torchvision==0.15.2+cu118 torchaudio==2.0.2 --extra-index-url https://download.pytorch.org/whl/cu118

⚠️ 注意事项:
- 不要盲目复制官网最新命令。若你的驱动只支持到 CUDA 11.4,则应选择cu114版本。
- 可通过nvidia-smi查看驱动支持的最高 CUDA 版本。
- 若强行安装更高版本的 PyTorch + CUDA,会导致torch.cuda.is_available()返回False

安装完成后进入 Python 交互环境验证:

import torch print(torch.__version__) print(torch.cuda.is_available()) # 应返回 True print(torch.cuda.get_device_name(0))

预期输出:

2.0.1+cu118 True NVIDIA GeForce RTX 3060

只有当第二行输出为True时,才说明 GPU 加速已启用。


克隆并配置 YOLOv5 项目

获取官方代码仓库:

git clone https://github.com/ultralytics/yolov5 cd yolov5

安装项目依赖项:

pip install -r requirements.txt

该脚本会自动安装numpy,matplotlib,Pillow,tqdm,seaborn,scipy等常用库。整个过程约需 2–5 分钟,取决于网络速度。


测试 YOLOv5 推理功能

YOLOv5 自带detect.py脚本,可用于图像、视频或多路流的目标检测。

运行内置示例图片测试:

python detect.py --source data/images/

执行完毕后,结果将保存在runs/detect/exp/目录下:

ls runs/detect/exp/

你可以通过 SCP 下载这些图片,或在本地图形界面中查看。每张图上都会标注出检测到的对象及其置信度,常见类别包括人、车、狗、自行车等。

常用参数说明

参数含义
--weights yolov5s.pt使用小型模型(也可换为 m/l/x)
--conf 0.4设置置信度阈值
--img-size 640输入图像尺寸(越大越准但越慢)
--device 0指定使用第一块 GPU

例如运行中型模型并指定 GPU:

python detect.py --source data/images/ --weights yolov5m.pt --img 640 --device 0

首次运行时会自动下载预训练权重文件(如yolov5s.pt),后续无需重复下载。


常见问题排查指南

nvidia-smi命令未找到

原因分析:NVIDIA 驱动未正确安装,或系统未重启。

解决方法
- 确认是否执行了sudo ubuntu-drivers autoinstall
- 安装后务必重启系统
- 检查/usr/bin/nvidia-smi是否存在


torch.cuda.is_available()返回 False

这是最常见的 GPU 调用失败问题,可能由多种因素引起:

  1. PyTorch 安装的是 CPU 版本
    - 检查安装命令是否包含+cuXXX标识
    - 错误示例:pip install torch→ 默认安装 CPU 版

  2. CUDA 版本不匹配
    - 驱动支持的 CUDA 版本 < PyTorch 所需版本
    - 解决方案:降级 PyTorch 或升级驱动

  3. 显卡被占用或异常
    - 执行nvidia-smi查看 GPU 使用情况
    - 尝试重启系统释放资源

  4. Conda 环境混乱
    - 曾混用sudo pip install导致权限错乱
    - 建议删除环境重来:conda env remove -n yolov5

调试技巧:运行nvcc --version可查看本地 CUDA Toolkit 版本(非必需,但有助于定位问题)。如果没有安装 CUDA Toolkit,也不影响 PyTorch 使用 GPU,因为其自带 CUDA runtime。


❌ 安装过程中出现权限错误

错误做法:在 Conda 环境中使用sudo pip install

这会导致包安装到系统路径,破坏虚拟环境隔离机制。

✅ 正确做法:
- 在激活的 conda 环境中直接使用pip install
- 如遇权限问题,先升级 pip:pip install --upgrade pip
- 若仍失败,检查家目录权限是否正常


总结与延伸思考

至此,你已经完成了一个功能完备的深度学习开发平台搭建。这套流程不仅适用于 YOLOv5,也为后续接入其他基于 PyTorch 的模型(如 YOLOv8、Mask R-CNN、Transformer 等)打下了坚实基础。

回顾核心步骤:
- 成功禁用了 nouveau 驱动
- 安装了适配的 NVIDIA 官方驱动
- 配置了 Miniconda 实现环境隔离
- 安装了 GPU 版 PyTorch 并验证可用性
- 部署了 YOLOv5 并完成首次推理测试

整套方案强调“最小化依赖 + 最大化可控”,特别适合科研实验、模型复现和自动化部署。

应用扩展建议

  • 可视化训练过程:结合 TensorBoard 记录 loss、mAP 等指标
  • 自定义数据集训练:编写.yaml文件进行迁移学习
  • 边缘设备部署:导出 ONNX 模型并在 Jetson Nano/TX2 上运行
  • 批量处理视频流:接入 RTSP 视频源实现安防监控

现在,你可以放心地投入到模型训练与优化中了——毕竟,一个好的开始,等于成功了一半。


附录:完整命令汇总(一键复制备用)

# 1. 系统准备 sudo apt update sudo apt install build-essential linux-headers-$(uname -r) echo -e "blacklist nouveau\noptions nouveau modeset=0" | sudo tee /etc/modprobe.d/blacklist-nouveau.conf sudo update-initramfs -u sudo reboot # 2. 安装 NVIDIA 驱动 sudo ubuntu-drivers autoinstall sudo reboot # 3. 安装 Miniconda mkdir ~/miniconda && cd ~/miniconda wget https://repo.anaconda.com/miniconda/Miniconda3-py310_23.1.0-Linux-x86_64.sh bash Miniconda3-py310_23.1.0-Linux-x86_64.sh source ~/.bashrc # 4. 配置镜像源 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --set show_channel_urls yes pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple conda config --set auto_activate_base false # 5. 创建虚拟环境 conda create -n yolov5 python=3.10 conda activate yolov5 # 6. 安装 GPU 版 PyTorch pip install torch==2.0.1+cu118 torchvision==0.15.2+cu118 torchaudio==2.0.2 --extra-index-url https://download.pytorch.org/whl/cu118 # 7. 安装 YOLOv5 git clone https://github.com/ultralytics/yolov5 cd yolov5 pip install -r requirements.txt # 8. 测试 python detect.py --source data/images/

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询