吉林省网站建设_网站建设公司_JavaScript_seo优化
2025/12/26 14:16:34 网站建设 项目流程

Ubuntu 18.04下配置GPU版PyTorch与YOLOv5环境

在深度学习项目开发中,一个稳定、可复现的运行环境是成功的第一步。尤其是当你准备部署像YOLOv5这样对硬件依赖较强的实时目标检测模型时,如何让 PyTorch 正确识别并利用 NVIDIA GPU 成为关键。本文将带你从零开始,在Ubuntu 18.04系统上完整搭建一套支持 CUDA 加速的深度学习工作流,涵盖驱动安装、环境隔离、框架部署和项目验证全过程。

整个流程围绕Miniconda-Python3.9构建轻量级虚拟环境,避免系统级污染,提升后续迁移和协作效率。我们选择的组件版本均经过实际测试兼容性良好,特别适合科研实验或工程落地场景使用。


系统准备:确认基础条件与前置操作

动手之前,先确保你的机器满足基本要求:

  • 配备支持 CUDA 的 NVIDIA 显卡(如 GTX 10xx / RTX 20xx/30xx 系列)
  • 操作系统为 Ubuntu 18.04 LTS(64位推荐)
  • 已连接互联网,具备sudo权限
  • 安装了基础编译工具链(CUDA 编译需要)

首先检查显卡型号是否被识别:

lspci | grep -i nvidia

如果输出中出现 NVIDIA 相关条目,则说明硬件已就绪。

接着确认 GCC 版本是否符合 CUDA 要求(注意:CUDA Toolkit 对 gcc 有严格限制,Ubuntu 18.04 默认的 7.5 是安全的):

gcc --version

然后安装内核头文件,这是后续编译 NVIDIA 驱动模块所必需的:

sudo apt update sudo apt install linux-headers-$(uname -r)

关键一步:禁用开源驱动nouveau

Ubuntu 默认启用开源显卡驱动nouveau,它会抢占 GPU 控制权,导致官方 NVIDIA 驱动无法加载。必须提前将其屏蔽。

创建黑名单配置文件:

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

填入以下内容:

blacklist nouveau options nouveau modeset=0

保存后更新 initramfs 并重启:

sudo update-initramfs -u sudo reboot

重启完成后,执行以下命令验证nouveau是否已被禁用:

lsmod | grep nouveau

若无任何输出,则表示禁用成功,可以继续下一步。


安装 NVIDIA 驱动与 CUDA Toolkit

安装专有驱动:自动匹配最适版本

比起手动下载.run文件,使用系统自带工具更稳妥,能自动处理依赖和冲突。

查看推荐驱动版本:

ubuntu-drivers devices

通常你会看到类似这样的输出:

== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 == modalias : pci:v000010DEd00001C82sv00001462sd0000336Abc03sc00i00 vendor : NVIDIA Corporation model : GP104 [GeForce GTX 1080] driver : nvidia-driver-470 - distro non-free driver : nvidia-driver-450 - distro non-free driver : xserver-xorg-video-nouveau - distro free builtin

选择标记为distro non-free的最新版本即可,执行自动安装:

sudo ubuntu-drivers autoinstall

安装完成后再次重启:

sudo reboot

验证驱动状态:

nvidia-smi

如果能看到 GPU 使用率、温度、显存等信息,说明驱动已正常加载。

⚠️ 常见问题:若提示command not found,请检查是否遗漏了 PATH 设置,或者尝试重新安装驱动。


安装 CUDA Toolkit 11.1(适配 PyTorch 1.9+)

虽然 PyTorch 提供了多种 CUDA 构建版本,但为了兼容主流 YOLOv5 项目,我们选用CUDA 11.1。该版本既不过于陈旧,也能避开某些新版本中存在的兼容性陷阱。

前往官网归档页面下载 runfile 安装包:
👉 https://developer.nvidia.com/cuda-11.1.0-download-archive

选择:
- OS: Linux
- Architecture: x86_64
- Distribution: Ubuntu 18.04
- Installer Type: runfile (local)

下载完成后运行安装脚本:

sudo sh cuda_11.1.0_455.23.05_linux.run

⚠️ 安装界面注意事项:
-不要勾选“Install NVIDIA Driver”—— 我们已经通过ubuntu-drivers安装过驱动
- 其他选项保持默认(包括 CUDA Toolkit、Samples 等)

按提示完成安装流程。


配置环境变量

为了让系统正确找到 CUDA 编译器和库文件,需将路径写入 shell 配置。

编辑用户环境变量文件:

vi ~/.bashrc

在末尾添加:

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

立即生效:

source ~/.bashrc

验证安装结果:

nvcc -V

应显示 CUDA 编译器版本信息,包含release 11.1字样。

为进一步确认环境完整性,可编译并运行设备查询样例:

cd /usr/local/cuda-11.1/samples/1_Utilities/deviceQuery sudo make ./deviceQuery

最终输出Result = PASS表示 CUDA 环境一切正常。


使用 Miniconda 管理 Python 环境(Python 3.9)

为了避免全局安装带来的依赖冲突,强烈建议使用Miniconda创建独立虚拟环境。相比 Anaconda,Miniconda 更轻量,只包含核心包管理功能。

下载与安装 Miniconda3(Python 3.9)

使用清华大学镜像站加速下载:

mkdir ~/miniconda && cd ~/miniconda wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py39_4.12.0-Linux-x86_64.sh

执行安装脚本:

bash Miniconda3-py39_4.12.0-Linux-x86_64.sh

安装过程中:
- 按回车浏览协议
- 输入yes接受许可
- 推荐使用默认路径
- 初始化 conda 时选择yes

安装完成后刷新环境:

source ~/.bashrc

验证安装:

conda --version python --version

预期输出conda 4.12.0Python 3.9.x


配置国内源以提升下载速度

默认的 conda 和 pip 源在国外服务器上,下载缓慢且容易中断。切换至清华源可显著改善体验。

添加 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 --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/ conda config --set show_channel_urls yes
设置 Pip 使用清华源:
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

这样以后所有通过pip install安装的包都会优先从国内拉取。


可选优化:关闭自动激活 base 环境

每次打开终端都自动进入(base)环境可能会影响其他脚本运行,也显得冗余。

关闭方式如下:

conda config --set auto_activate_base false

此后只有显式执行conda activate才会进入 base 环境。需要临时使用时也不影响。


创建虚拟环境并安装 GPU 版 PyTorch

现在进入正题:构建专属的 YOLOv5 开发环境。

创建独立环境

conda create -n yolov5 python=3.9 conda activate yolov5

此时终端前缀变为(yolov5),表示当前处于该环境中。


安装 PyTorch + torchvision + torchaudio(CUDA 11.1 构建版)

访问 PyTorch 官网 获取对应命令。针对 CUDA 11.1,执行:

pip install torch==1.9.0+cu111 torchvision==0.10.0+cu111 torchaudio==0.9.0 -f https://download.pytorch.org/whl/torch_stable.html

✅ 注意:+cu111后缀至关重要,表明这是基于 CUDA 11.1 编译的版本,必须与前面安装的 CUDA Toolkit 版本一致!

安装过程可能较慢,请耐心等待。完成后进行验证:

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

理想输出应为:

1.9.0+cu111 True

若返回True,恭喜!你的 PyTorch 已成功调用 GPU。

🔍 小贴士:如果你遇到libcudart.so找不到的问题,通常是LD_LIBRARY_PATH未正确设置所致,请回头检查.bashrc中的环境变量。


部署与运行 YOLOv5 项目

终于到了实战环节。

克隆官方仓库

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

建议切换到稳定发布版本以避免主干变动引发错误:

git checkout v6.0

安装项目依赖

YOLOv5 的依赖已定义在requirements.txt中:

pip install -r requirements.txt

这将安装numpy,matplotlib,seaborn,tqdm,Pillow等必要库。


运行检测示例

执行内置推理脚本:

python detect.py --source data/images/

首次运行会自动下载轻量模型yolov5s.pt。几分钟后,结果图像将保存在runs/detect/exp目录下,包含检测框和类别标签。

你可以通过图形界面查看结果,也可以远程传输到本地分析。


远程协作与开发建议

使用 Jupyter Notebook 提升交互效率

对于算法调试或可视化分析,Jupyter 是极佳工具。

在当前环境中安装:

conda install jupyter

启动服务:

jupyter notebook --ip=0.0.0.0 --port=8888 --allow-root --no-browser

外部访问地址为:

http://<服务器IP>:8888

输入终端打印的 Token 即可登录。

💡 提示:可通过 SSH 隧道安全访问,避免暴露端口。


使用 SSH 实现远程连接与端口转发

本地终端连接服务器:

ssh username@server_ip -p 22

若想把 Jupyter 映射到本地浏览器,使用本地端口转发:

ssh -L 8889:localhost:8888 username@server_ip

随后访问http://127.0.0.1:8889即可无缝操作远程 Notebook。


常见问题排查表

问题现象可能原因解决方案
nvidia-smi命令未找到驱动未安装或路径未加入使用ubuntu-drivers autoinstall安装驱动
nvcc -V报错但nvidia-smi正常CUDA Toolkit 未安装或环境变量缺失检查.bashrcCUDA_HOMEPATH设置
torch.cuda.is_available()返回 False安装了 CPU 版本或 CUDA 不匹配检查torch.__version__是否含+cuXXX,重装对应版本
ImportError: libcudart.so.11.0找不到动态库路径未设置检查LD_LIBRARY_PATH是否包含/usr/local/cuda-11.1/lib64

总结与实践建议

这套配置流程已在多台物理机和云服务器上验证通过,尤其适用于需要快速部署 YOLOv5 并启用 GPU 加速的场景。其核心优势在于:

  • 利用ubuntu-drivers自动化驱动安装,降低出错概率
  • 采用CUDA 11.1PyTorch 1.9.0+cu111组合,兼顾稳定性与性能
  • 使用 Miniconda 实现环境隔离,便于团队协作与项目迁移
  • 配合国内镜像源大幅提升依赖安装成功率

最后提醒一点:完成环境配置后,务必导出环境快照以便复现:

conda env export > environment.yml

未来只需一条命令即可重建完全相同的环境:

conda env create -f environment.yml

这才是真正意义上的“可复现研究”。

🚀 深度学习之旅,从此刻启航。

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

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

立即咨询