Ubuntu 20.04 搭建 TensorFlow-GPU 与 PyTorch 开发环境全记录
在深度学习项目中,选择合适的开发环境往往决定了后续训练效率和调试体验。尤其是在本地部署 AI 模型时,能否顺利启用 GPU 加速,直接关系到实验迭代的速度。对于使用 NVIDIA 显卡的开发者来说,在 Ubuntu 20.04 上配置一个既能跑通 TensorFlow 又能运行 PyTorch 的 GPU 环境,是迈向高效研发的第一步。
本文基于实操经验整理了一套完整流程,涵盖从 Anaconda 虚拟环境搭建、NVIDIA 驱动安装,到 CUDA 和 cuDNN 配置,最终实现TensorFlow 2.12与PyTorch 2.0+(CUDA 11.8)共存且均可调用 GPU 的目标。整个过程经过多轮验证,适用于主流 NVIDIA 显卡(如 RTX 3060/3070/3080 等),尤其适合刚接触 Linux 下深度学习环境搭建的新手或科研人员。
为什么先装 Anaconda?
Python 包依赖管理向来是个“坑”,特别是当你要同时维护多个项目、不同框架版本共存时。Anaconda 提供了强大的虚拟环境机制,不仅能隔离 Python 解释器和库版本,还能简化包安装流程。
安装 Anaconda
前往 Anaconda 官网 下载 Linux 版本的安装脚本。以Anaconda3-2023.03-Linux-x86_64.sh为例:
wget https://repo.anaconda.com/archive/Anaconda3-2023.03-Linux-x86_64.sh bash Anaconda3-2023.03-Linux-x86_64.sh安装过程中会提示阅读许可协议,按回车浏览后输入yes接受条款。路径保持默认即可,初始化 conda 也建议选yes。
完成后执行:
source ~/.bashrc此时终端前缀应出现(base),表示 Conda 已生效。
创建专用虚拟环境
为避免 TensorFlow 和 PyTorch 的依赖冲突,推荐创建独立环境:
conda create --name tf_pytorch python=3.9 conda activate tf_pytorch激活成功后,所有后续操作都将在该环境中进行,确保干净整洁。
小技巧:可以为常用命令设置别名,比如在
~/.bashrc中添加:
bash alias tpip="/home/your_username/anaconda3/envs/tf_pytorch/bin/pip" alias tpython="/home/your_username/anaconda3/envs/tf_pytorch/bin/python"刷新配置:
source ~/.bashrc,之后就可以用tpip install xxx快速安装包。
如何正确安装 NVIDIA 显卡驱动?
这是最容易出错的一环——显卡驱动没装好,后面再怎么折腾 CUDA 都白搭。
Ubuntu 提供了两种方式:图形化工具和命令行。如果你是在桌面系统上操作,推荐使用“附加驱动”;如果是服务器或远程 SSH 登录,则更适合用命令行。
方法一:“附加驱动”一键安装(适合新手)
打开Software & Updates → Additional Drivers,系统会自动检测可用驱动。通常推荐选择标记为“proprietary, tested”的版本。
点击 Apply Changes 开始安装,完成后重启机器。
方法二:命令行全自动安装(适合远程部署)
sudo apt update ubuntu-drivers devices # 查看推荐驱动 sudo ubuntu-drivers autoinstall sudo reboot这种方式特别适合没有 GUI 的场景,省去了手动下载.run文件的麻烦。
验证驱动是否正常
重启后运行:
nvidia-smi如果看到类似输出:
+-----------------------------------------------------------------------------+ | NVIDIA-SMI 525.105.17 Driver Version: 525.105.17 CUDA Version: 12.0 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | |===============================+======================+======================| | 0 NVIDIA GeForce RTX 3060 On | 00000000:01:00.0 On | N/A | | 30% 45C P8 15W / 170W | 1024MiB / 12288MiB | 5% Default | +-------------------------------+----------------------+----------------------+恭喜!你的 GPU 已经被识别,并且驱动工作正常。
注意:这里的 “CUDA Version: 12.0” 表示当前驱动支持最高 CUDA 12.0,但并不代表你已经安装了 CUDA Toolkit。我们仍需手动安装指定版本。
安装 CUDA Toolkit:选哪个版本最稳妥?
TensorFlow 和 PyTorch 对 CUDA 版本有明确要求。为了兼顾兼容性与稳定性,我们选择CUDA 11.8——它被 TensorFlow 2.12 和 PyTorch 2.0+ 同时支持,是目前较为理想的中间版本。
下载并安装 CUDA 11.8
进入 NVIDIA CUDA Archive,选择 Linux → x86_64 → Ubuntu → 20.04 → deb(network) 或 runfile。
这里使用 runfile 方式安装:
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⚠️ 关键提醒:不要勾选安装 NVIDIA Driver!因为我们已经通过系统安装了更高版本的驱动,重复安装可能导致冲突。
在交互界面中取消 Driver 安装选项,仅保留:
- [x] CUDA Toolkit 11.8
- [x] CUDA Samples
- [x] CUDA Documentation
设置环境变量
编辑~/.bashrc添加路径:
echo 'export PATH=/usr/local/cuda-11.8/bin:$PATH' >> ~/.bashrc echo 'export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc echo 'export CUDA_HOME=/usr/local/cuda-11.8' >> ~/.bashrc source ~/.bashrc验证 CUDA 是否安装成功
进入 samples 目录编译测试程序:
cd /usr/local/cuda-11.8/samples/1_Utilities/deviceQuery sudo make ./deviceQuery若输出包含:
Result = PASS Detected 1 device(s) Device 0: "NVIDIA GeForce RTX 3060" ...说明 CUDA 安装无误,GPU 可被调用。
安装 cuDNN:深度学习性能加速的关键
cuDNN 是 NVIDIA 针对深度神经网络核心操作(如卷积、池化、归一化等)高度优化的库,几乎所有现代框架都会调用它来提升计算效率。
获取 cuDNN
需要注册 NVIDIA 开发者账号,访问 cuDNN 下载页,下载与 CUDA 11.8 对应的版本:
示例文件名:
cudnn-linux-x86_64-8.7.0.84_cuda11-archive.tar.xz
上传至服务器后解压:
tar -xvf cudnn-linux-x86_64-8.7.0.84_cuda11-archive.tar.xz复制文件到 CUDA 目录
sudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda/include/ sudo cp cudnn-*-archive/lib/libcudnn* /usr/local/cuda/lib64/ sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*更新动态链接缓存:
sudo ldconfig至此,底层三大组件(Driver + CUDA + cuDNN)全部就绪,接下来就可以安装深度学习框架了。
配置 TensorFlow-GPU 环境
TensorFlow 以其强大的生产部署能力著称,尤其是 TensorBoard、SavedModel、TF Serving 等生态工具,在企业级应用中表现优异。
安装 TensorFlow 2.12
确保已激活 conda 环境:
conda activate tf_pytorch pip install tensorflow==2.12.0 -i https://pypi.tuna.tsinghua.edu.cn/simple使用清华镜像可显著加快下载速度,尤其在国内网络环境下非常实用。
验证 GPU 支持
启动 Python 测试:
import tensorflow as tf print("TensorFlow Version:", tf.__version__) print("GPU Available:", tf.config.list_physical_devices('GPU')) for device in tf.config.list_physical_devices(): print(device)预期输出:
TensorFlow Version: 2.12.0 GPU Available: [PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]只要返回中有'GPU'设备,就说明 TensorFlow 成功调用了 GPU。
常见问题排查:
- 若提示Could not load dynamic library 'libcudart.so.11.0',请检查 CUDA 路径是否正确。
- 若显示no supported gpu devices found,可能是 cuDNN 版本不匹配或未正确复制文件。
安装 PyTorch(GPU 版本)
PyTorch 因其动态图机制和直观的 API 设计,在学术界广受欢迎,尤其适合快速原型开发和模型调试。
使用官方命令安装
访问 pytorch.org/get-started/locally,选择对应配置,获取安装命令:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118这条命令会自动拉取适配 CUDA 11.8 的预编译包,无需手动编译,极大简化安装流程。
验证 PyTorch 是否启用 GPU
import torch print("PyTorch Version:", torch.__version__) print("CUDA Available:", torch.cuda.is_available()) print("GPU Count:", torch.cuda.device_count()) if torch.cuda.is_available(): print("Current GPU:", torch.cuda.get_device_name(0))理想输出:
PyTorch Version: 2.0.1+cu118 CUDA Available: True GPU Count: 1 Current GPU: NVIDIA GeForce RTX 3060一旦torch.cuda.is_available()返回True,说明 PyTorch 已准备就绪。
推荐开发工具:PyCharm 配置指南
虽然 Jupyter Notebook 很适合做探索性分析,但在构建复杂项目时,还是需要专业的 IDE 来提升编码效率。PyCharm(尤其是专业版)提供了出色的代码补全、调试、版本控制集成等功能。
下载与安装
wget https://download.jetbrains.com/python/pycharm-community-2023.1.tar.gz tar -xzf pycharm-community-2023.1.tar.gz sudo mv pycharm-community-2023.1 /opt/启动:
cd /opt/pycharm-community-2023.1/bin ./pycharm.sh首次运行时可以选择创建桌面快捷方式,方便后续启动。
配置解释器路径
打开 PyCharm 后:
- File → Settings → Project → Python Interpreter
- 点击齿轮图标 → Add…
- 选择Conda Environment→ Existing environment
- 输入路径:
/home/your_username/anaconda3/envs/tf_pytorch/bin/python
保存后,IDE 即可识别你在 conda 中安装的所有包,包括 TensorFlow 和 PyTorch。
这套环境配置下来,你已经拥有了一个功能完备、双框架共存的专业级 AI 开发平台。无论是做图像分类、自然语言处理,还是训练生成对抗网络,都能获得稳定的 GPU 加速支持。
关键点总结如下:
- 使用CUDA 11.8 + cuDNN 8.7组合,完美兼容 TensorFlow 2.12 与 PyTorch 2.0+
- 采用Conda 虚拟环境实现依赖隔离,避免版本混乱
- 优先使用国内镜像源加速 pip 安装
- 所有组件遵循自底向上的安装顺序:驱动 → CUDA → cuDNN → 框架
- 强烈建议在物理机双系统上操作,虚拟机几乎无法实现 GPU 直通
下一步,你可以结合 Jupyter Lab 进行交互式开发,或接入 TensorBoard 实现训练可视化,进一步提升工程效率。
希望这份实战指南能帮你少踩几个坑,快速进入深度学习的核心战场。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考