Ubuntu 18.04配置TensorFlow-GPU与PyTorch-GPU完整指南
在深度学习项目中,本地训练环境的搭建往往是第一步,也可能是最让人头疼的一步。尤其是当你面对一块RTX 2080 Ti显卡、却始终无法让PyTorch或TensorFlow识别出GPU时,那种挫败感简直难以言喻。
本文基于Ubuntu 18.04.5 LTS + NVIDIA RTX 2080 Ti的真实环境,手把手带你从零开始构建一个稳定、高效的双框架(TensorFlow-GPU 和 PyTorch-GPU)开发平台。整个过程覆盖驱动安装、CUDA/cuDNN配置、Anaconda环境管理以及离线安装策略,并特别针对国内网络优化了下载方式,确保每一步都可复现、少踩坑。
更换APT源为阿里云镜像
Ubuntu默认的软件源位于国外,更新和安装速度极慢。建议第一时间切换为国内镜像以提升效率。
使用以下命令编辑软件源列表:
sudo gedit /etc/apt/sources.list将原文件内容全部注释(在每行deb前加#),然后粘贴如下阿里云源(适用于Bionic即18.04版本):
# Aliyun APT Source for Ubuntu 18.04 (bionic) deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse保存后执行更新:
sudo apt-get update sudo apt-get upgrade若遇到锁文件冲突问题,可清除相关锁:
sudo rm /var/lib/dpkg/lock-frontend sudo rm /var/cache/apt/archives/lock顺带安装Vim以便后续编辑配置文件:
sudo apt-get install vim安装NVIDIA显卡驱动
禁用开源驱动nouveau
Ubuntu默认启用开源驱动nouveau,它会与NVIDIA官方驱动冲突,必须提前禁用。
编辑黑名单文件:
sudo chmod 666 /etc/modprobe.d/blacklist.conf sudo gedit /etc/modprobe.d/blacklist.conf在末尾添加以下内容:
blacklist vga16fb blacklist nouveau blacklist rivafb blacklist rivatv blacklist nvidiafb保存后更新initramfs并重启:
sudo update-initramfs -u sudo reboot重启后验证是否已禁用:
lsmod | grep nouveau✅ 若无输出,则说明禁用成功。
安装编译工具链
NVIDIA驱动安装过程中需要编译内核模块,因此需先安装必要的构建工具:
sudo apt-get install build-essential检查GCC版本:
gcc --version g++ --version如有提示make未安装,补上:
sudo apt-get install make下载并安装NVIDIA驱动
前往 NVIDIA驱动官网,选择你的显卡型号(如GeForce RTX 2080 Ti)、操作系统Linux 64位,下载.run格式驱动包。
假设文件名为NVIDIA-Linux-x86_64-470.141.03.run,存放在/home/xxx/Downloads/
进入目录并赋予执行权限:
cd /home/xxx/Downloads/ sudo chmod +x NVIDIA-Linux-x86_64-470.141.03.run关闭图形界面,切换到TTY终端:
Ctrl + Alt + F3登录后停止显示管理器:
sudo service lightdm stop开始安装,避免常见冲突:
sudo ./NVIDIA-Linux-x86_64-470.141.03.run \ --no-x-check \ --no-nouveau-check \ --no-opengl-files参数说明:
---no-x-check:跳过X服务检查
---no-nouveau-check:不再检测nouveau(我们已经禁用了)
---no-opengl-files:不安装OpenGL组件,防止与系统图形库冲突
安装完成后启动图形界面:
sudo service lightdm start Ctrl + Alt + F7 # 切回桌面(部分系统为F1)验证驱动是否生效:
nvidia-smi✅ 成功显示显卡信息、驱动版本及CUDA版本即表示安装完成。
使用Anaconda管理Python环境
安装Anaconda
访问 Anaconda官网 下载Linux版安装脚本。
运行安装程序:
bash Anaconda3-2023.03-Linux-x86_64.sh按提示操作:
- 回车查看许可协议 → 输入yes
- 接受默认路径 → 回车
- 初始化conda?→输入no
❗ 强烈建议不要自动初始化,便于手动控制环境变量加载时机。
区分系统Python与Anaconda Python
Ubuntu自带Python 3.6,而Anaconda使用独立解释器。为避免混淆,可通过别名机制明确区分。
编辑用户环境变量:
vim ~/.bashrc在文件末尾添加:
# 明确指定系统python3路径 alias python3="/usr/bin/python3.6" # 将Anaconda加入PATH(注意替换xxx为实际用户名) export PATH="/home/xxx/anaconda3/bin:$PATH"保存退出(Esc →:wq!),使配置生效:
source ~/.bashrc测试效果:
python --version # 应输出Anaconda的Python版本(如3.9) python3 --version # 应输出系统的3.6创建独立虚拟环境
推荐分别为PyTorch和TensorFlow创建隔离环境,避免依赖冲突。
创建PyTorch环境:
conda create -n pytorch python=3.8 conda activate pytorch创建TensorFlow环境:
conda create -n tensorflow python=3.8 conda activate tensorflow查看所有环境:
conda env list退出当前环境:
conda deactivate💡 后续安装任何框架前,请务必激活对应环境!
安装CUDA Toolkit(推荐11.8)
CUDA是NVIDIA提供的并行计算平台,几乎所有GPU加速的深度学习框架都依赖它。
前往 CUDA Toolkit Archive,选择CUDA 11.8 Update 1(兼容性强,支持主流框架)。
设置选项如下:
- OS: Linux
- Architecture: x86_64
- Distribution: Ubuntu
- Version: 18.04
- Installer Type: runfile (local)
复制并执行安装命令,例如:
wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run sudo sh cuda_11.8.0_520.61.05_linux.run安装界面出现后:
- 按Enter接受EULA
- 移动光标到Driver项,按空格取消勾选 ✅(已有驱动)
- 其余保持默认(均有✅)
- 选择Install
等待几分钟完成安装。
配置CUDA环境变量
继续编辑.bashrc文件:
vim ~/.bashrc添加以下内容(根据实际安装版本调整路径):
export PATH=/usr/local/cuda-11.8/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH export CUDA_HOME=/usr/local/cuda-11.8保存并重新加载:
source ~/.bashrc验证安装结果:
nvcc --version✅ 输出CUDA编译器版本即表示成功。
安装cuDNN(深度神经网络加速库)
cuDNN是NVIDIA专为深度学习优化的核心库,必须与CUDA版本严格匹配。
前往 cuDNN下载页面(需注册账号),选择cuDNN v8.7 for CUDA 11.x。
下载完成后解压:
tar -xzvf cudnn-linux-x86_64-8.7.0.84_cuda11-archive.tar.xz复制文件至CUDA目录:
sudo cp cudnn-*-x86_64-*/include/*.h /usr/local/cuda/include/ sudo cp cudnn-*-x86_64-*/lib/* /usr/local/cuda/lib64/ sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*✅ 至此,底层GPU支持栈(Driver + CUDA + cuDNN)已全部部署完毕。
安装PyTorch-GPU(推荐离线安装)
虽然可以通过pip或conda在线安装,但受限于网络和镜像同步延迟,经常导致无法正确识别GPU支持。
推荐方案:使用清华镜像离线安装
访问:https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/linux-64/
搜索并下载以下三个包(注意CUDA版本一致):
-pytorch-1.13.1-py3.8_cuda11.8_0.tar.bz2
-torchvision-0.14.1-py38_cu118.tar.bz2
-torchaudio-0.13.1-py38_cu118.tar.bz2
安装步骤(进入pytorch环境):
conda activate pytorch conda install --offline /home/xxx/Downloads/pytorch-1.13.1-py3.8_cuda11.8_0.tar.bz2 conda install --offline /home/xxx/Downloads/torchvision-0.14.1-py38_cu118.tar.bz2 conda install --offline /home/xxx/Downloads/torchaudio-0.13.1-py38_cu118.tar.bz2验证PyTorch-GPU可用性:
import torch print(torch.__version__) print(torch.cuda.is_available()) # 应输出 True print(torch.cuda.get_device_name(0)) # 应显示显卡名称,如 "RTX 2080 Ti"✅ 若返回True且能识别显卡,说明PyTorch-GPU配置成功。
安装TensorFlow-GPU(推荐pip离线安装)
自TensorFlow 2.1起,官方不再提供独立的tensorflow-gpu包,统一为tensorflow,自动检测GPU支持。
但由于PyPI源不稳定,仍建议采用离线安装方式。
使用清华PyPI镜像下载whl包
访问:https://pypi.tuna.tsinghua.edu.cn/simple/tensorflow/
查找与CUDA 11.8兼容的版本,例如:
tensorflow-2.12.0-cp38-cp38-linux_x86_64.whl✅ 注意cp38表示Python 3.8,必须与你的conda环境匹配。
安装步骤:
conda activate tensorflow pip install /home/xxx/Downloads/tensorflow-2.12.0-cp38-cp38-linux_x86_64.whl验证TensorFlow-GPU支持:
import tensorflow as tf print(tf.__version__) print(tf.config.list_physical_devices('GPU')) # 应列出GPU设备 print(tf.test.is_built_with_cuda()) # 应返回 True✅ 若输出GPU设备列表且CUDA标志为True,则安装成功。
常见问题与避坑指南
torch.cuda.is_available()返回 False?
这几乎是新手最常见的问题,可能原因包括:
- CUDA/cuDNN版本不匹配
- 安装包来自非官方渠道(如conda-forge)
- 环境变量未正确设置
- 实际使用的Python解释器并非预期的那个
✅ 解决方法:
- 运行nvidia-smi查看当前驱动支持的最高CUDA版本
- 参考PyTorch官网文档确认版本对应关系(如PyTorch 1.13支持CUDA 11.7/11.8)
-优先使用离线安装包,避免因镜像不同步导致安装错误版本
- 在Python中打印sys.executable确认正在使用的解释器路径
安装后找不到模块?
有时即使安装成功,也无法导入模块,常见于环境未刷新的情况。
尝试以下操作:
conda deactivate && conda activate your_env或者直接重启系统 —— 很多环境变量变更需要重启才能完全生效。
报错ImportError: libcudart.so.11.0: cannot open shared object file
这是典型的CUDA版本不一致问题。系统期望的是11.0,但你安装的是11.8。
检查系统中实际存在的CUDA动态库:
find /usr -name "libcudart.so*" 2>/dev/null如果发现/usr/local/cuda-11.8存在,但软链接/usr/local/cuda指向旧版本,修复如下:
sudo ln -sf /usr/local/cuda-11.8 /usr/local/cuda⚠️ 使用
-sf参数强制覆盖已有链接。
总结与建议
这套配置已在多台RTX 2080 Ti机器上验证通过,核心组件版本推荐如下:
| 组件 | 推荐版本 | 说明 |
|---|---|---|
| 操作系统 | Ubuntu 18.04.5 LTS | 长期支持,稳定性强 |
| GPU驱动 | ≥470.xx | 支持CUDA 11.x系列 |
| CUDA | 11.8 | 当前最稳定的生产级版本 |
| cuDNN | v8.7 | 官方推荐用于深度学习 |
| PyTorch | 1.13.1+cu118 | 支持CUDA 11.8 |
| TensorFlow | 2.12.0 | 自动检测GPU,无需单独安装gpu包 |
关键经验总结:
-坚持使用离线安装包:无论是conda还是pip,国内网络环境下强烈推荐从清华镜像下载后本地安装。
-环境隔离不可省:不同项目对框架版本要求各异,用conda创建独立环境是最稳妥的做法。
-版本匹配是成败关键:驱动 → CUDA → cuDNN → 框架,每个环节都要严格对应,不能混搭。
-善用nvidia-smi和nvcc --version做交叉验证:它们分别代表驱动层和开发工具链的状态,两者一致才可靠。
🎉 至此,你已经在 Ubuntu 18.04 上成功搭建了一个功能完整、稳定可靠的TensorFlow-GPU 与 PyTorch-GPU 开发环境。
无论你是从事学术研究、模型调优,还是企业级部署,这套组合都能为你提供坚实的底层支撑。
最后提醒:完成全部安装后,建议重启一次系统,再全面验证一遍各组件状态。祝你一路绿灯,训练飞快!🚀
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考