news 2026/4/16 10:59:28

Ubuntu 18.04 安装 TensorFlow 与 PyTorch GPU 环境全记录

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Ubuntu 18.04 安装 TensorFlow 与 PyTorch GPU 环境全记录

Ubuntu 18.04 配置 TensorFlow 与 PyTorch GPU 环境实战指南

在深度学习项目中,一个稳定、高效且支持 GPU 加速的开发环境几乎是标配。然而,对于刚接触 Linux 和 CUDA 生态的新手来说,从零开始搭建这样一个环境往往意味着要面对驱动冲突、版本不兼容、网络超时等一系列“经典坑”。本文基于Ubuntu 18.04 + RTX 2080 Ti的真实配置,完整记录了如何一步步构建支持TensorFlow 2.5 和 PyTorch 1.9 GPU 加速的双框架开发环境,全程使用国内镜像加速,避免因网络问题导致安装失败。

整个过程涵盖了系统源更换、显卡驱动安装、Anaconda 环境管理、CUDA 与 cuDNN 配置、以及两大主流框架的离线部署方案。所有操作均经过实测验证,适用于大多数 NVIDIA 显卡用户。


换源提速:让软件安装不再龟速

Ubuntu 默认的官方源位于境外,apt update动辄几分钟,下载包更是经常中断。第一步就是切换为国内高速镜像源,推荐阿里云或清华源。

以阿里云为例,编辑源列表:

sudo vim /etc/apt/sources.list

将原内容全部注释或清空,替换为以下内容(对应 Ubuntu 18.04,即 bionic):

deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

保存后立即更新索引并升级系统:

sudo apt-get update && sudo apt-get upgrade -y

如果遇到锁文件错误:

sudo rm /var/lib/dpkg/lock-frontend sudo dpkg --configure -a

顺手装个vim,后面频繁用到:

sudo apt install vim -y

这一步虽小,却是后续所有操作流畅进行的基础——毕竟没人愿意每次安装都等半小时。


屏蔽 nouveau,迎接官方驱动

NVIDIA 官方驱动和开源的nouveau驱动互斥。若不提前禁用,轻则安装失败,重则黑屏无法进入系统。

编辑黑名单文件:

sudo vim /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 install build-essential -y

这个包包含了gccg++make,是 Linux 下几乎所有编译任务的前提。确认安装成功:

gcc --version

看到版本号即可继续下一步。


安装 NVIDIA 显卡驱动(Runfile 方式)

图形界面下直接安装驱动极易失败,建议关闭 GUI 进入 TTY 模式。

Ctrl + Alt + F3切换到终端登录界面,输入用户名密码登录。

停止显示管理器:

sudo service lightdm stop

前往你下载的.run文件目录(如/home/yourname/),赋予执行权限:

cd /home/yourname/ sudo chmod +x NVIDIA-Linux-x86_64-*.run

执行安装命令,并带上关键参数:

sudo ./NVIDIA-Linux-x86_64-*.run \ --no-x-check \ --no-nouveau-check \ --no-opengl-files

参数含义如下:
---no-x-check:跳过 X Server 检查,避免因图形服务未完全关闭而报错;
---no-nouveau-check:我们已手动禁用,无需再次检测;
---no-opengl-files:防止替换系统的 OpenGL 库,引发桌面环境异常。

安装完成后重启:

sudo reboot

回到桌面后,打开终端运行:

nvidia-smi

如果能看到类似下面的信息,恭喜你,GPU 已经被系统识别:

+-----------------------------------------------------------------------------+ | NVIDIA-SMI 470.82.01 Driver Version: 470.82.01 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 208... Off | 00000000:01:00.0 Off | N/A | | 30% 45C P8 18W / 250W | 0MiB / 11019MiB | 0% Default | +-------------------------------+----------------------+----------------------+

注意右上角显示的 CUDA Version 是 11.4,这意味着后续安装的 CUDA Toolkit 版本应尽量匹配或略低。


安装 Anaconda 并设置 Python 环境隔离

Anaconda 是目前最主流的 Python 科学计算发行版,其conda能完美实现多环境隔离,特别适合同时维护多个深度学习项目的场景。

前往 Anaconda 官网 下载 Linux 版本(建议选 2021 年左右的版本,兼容性好)。

假设下载的是Anaconda3-2021.05-Linux-x86_64.sh,在终端运行:

bash Anaconda3-2021.05-Linux-x86_64.sh

一路回车阅读协议,输入yes接受许可。安装路径默认即可。当询问是否初始化 conda 时,选择no—— 我们希望手动控制环境变量加载时机。

安装完成后,编辑 shell 配置文件:

vim ~/.bashrc

在文件末尾添加:

# 区分系统 Python 与 Anaconda Python alias python3="/usr/bin/python3.6" export PATH="/home/yourname/anaconda3/bin:$PATH"

这样设置后:
- 执行python自动调用 Anaconda 的解释器;
- 执行python3则调用系统自带的 Python 3.6,避免影响系统脚本;
- 不依赖 conda 自动注入的初始化逻辑,更可控。

保存退出后执行:

source ~/.bashrc

验证:

python --version # 应显示 Anaconda 的 Python 版本(如 3.8.8) python3 --version # 应显示 3.6.x

接着创建两个独立虚拟环境,分别用于 PyTorch 和 TensorFlow:

conda create -n pytorch python=3.8 -y conda create -n tensorflow python=3.8 -y

查看环境列表:

conda env list

激活某个环境只需:

conda activate pytorch

如果你遇到conda: command not found,可以手动初始化:

~/anaconda3/bin/conda init

然后重新打开终端或执行source ~/.bashrc


安装 CUDA Toolkit 11.4

虽然驱动已经包含部分 CUDA 支持,但完整的开发套件仍需单独安装 CUDA Toolkit。

前往 NVIDIA CUDA 下载页,选择 Runfile (local) 安装方式,下载cuda_11.4.2_470.57.02_linux.run

⚠️ 注意:不要勾选 Driver!因为我们已经安装了兼容版本的驱动。

切换到 TTY 或确保图形界面已关闭,执行安装:

sudo sh cuda_11.4.2_470.57.02_linux.run

进入交互界面后:
- 输入accept同意协议;
- 使用方向键取消左侧[X] Driver的勾选;
- 其他组件保持默认;
- 选择 Install 开始安装。

安装完成后,配置环境变量:

vim ~/.bashrc

追加以下内容:

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

保存并加载:

source ~/.bashrc

验证安装结果:

nvcc --version

输出中应包含release 11.4,表示 CUDA 编译器就绪。


安装 cuDNN 8.2

cuDNN 是深度神经网络的核心加速库,对卷积、池化等操作做了高度优化。它是闭源组件,需注册 NVIDIA 账号后才能下载。

前往 cuDNN 官网,选择与 CUDA 11.4 对应的版本(如cudnn-linux-x86_64-8.2.1.32_cuda11.4-archive.tar.gz)。

下载解压:

tar -xzvf cudnn-linux-x86_64-8.2.1.32_cuda11.4-archive.tar.gz

复制头文件和库文件到 CUDA 目录:

sudo cp cuda/include/cudnn*.h /usr/local/cuda/include/ sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/ sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*

最后刷新动态链接缓存:

sudo ldconfig

至此,底层 GPU 计算栈已全部打通:驱动 → CUDA → cuDNN,三位一体。


离线安装 PyTorch 1.9(GPU 版)

PyTorch 官方通过 Conda 提供预编译的 GPU 版本,但由于服务器在国外,直接conda install极易超时。推荐使用清华镜像站离线安装。

访问 清华 Anaconda 镜像 - pytorch 频道,搜索:

pytorch-1.9.0-py3.8_cuda11.1_

尽管你的 CUDA 是 11.4,但 PyTorch 官方只打包到了 11.1,这没关系——高版本驱动完全兼容低版本运行时。

下载.tar.bz2文件到本地(如~/Downloads/)。

激活环境并离线安装:

conda activate pytorch conda install --offline ~/Downloads/pytorch-1.9.0-py38_cuda11.1_*.tar.bz2

等待安装完成。若提示找不到 torch 模块,务必重启一次系统再试,因为某些 GPU 设备节点可能尚未正确挂载。

验证:

import torch print(torch.cuda.is_available()) # True print(torch.version.cuda) # '11.1' print(torch.device('cuda')) # <torch.device 'cuda'>

返回True表示 PyTorch 成功调用 GPU。


离线安装 TensorFlow 2.5(GPU 版)

TensorFlow 的 GPU 支持较为复杂,尤其是旧版本对 CUDA/cuDNN 版本要求严格。TF 2.5 正好适配 CUDA 11.2 ~ 11.4 和 cuDNN 8.1+,与当前环境完全契合。

前往 清华 PyPI 镜像 - tensorflow,查找:

tensorflow-2.5.0-cp38-cp38-linux_x86_64.whl

注意cp38表示适用于 Python 3.8。

下载后进入 TensorFlow 环境:

conda activate tensorflow pip install numpy wheel pip install ~/Downloads/tensorflow-2.5.0-cp38-cp38-linux_x86_64.whl

安装前先装numpywheel可避免依赖缺失错误。

验证:

import tensorflow as tf print("TensorFlow Version:", tf.__version__) print("GPU Available: ", tf.test.is_gpu_available()) print("Visible GPUs: ", tf.config.experimental.list_physical_devices('GPU'))

预期输出:

TensorFlow Version: 2.5.0 GPU Available: True Visible GPUs: [PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]

💡 提示:tf.test.is_gpu_available()在 TF 2.9+ 中已被弃用,但在 2.5 中依然有效。


常见问题与避坑清单

问题现象根本原因解决方法
nvidia-smi: command not found驱动未安装或路径未加入检查驱动安装日志,确认--no-opengl-files参数使用正确
torch.cuda.is_available()返回 Falseconda 包损坏或 CUDA 不匹配使用清华镜像离线安装指定版本,避免自动解析错误版本
ImportError: libcudnn.so.8: cannot open shared object filecuDNN 文件未复制或未刷新缓存检查路径是否正确,执行sudo ldconfig
conda: command not foundconda 未初始化执行~/anaconda3/bin/conda init并重启终端
安装过程卡死或崩溃图形界面干扰切换至 TTY,关闭 lightdm 后再操作

此外,建议定期清理不必要的 conda 环境和缓存包:

conda clean --all

避免磁盘空间被大量临时文件占用。


这套环境之所以稳定,是因为它遵循了一个清晰的技术选型逻辑:长期支持系统 + 主流中间版本工具链 + 明确的版本对应关系

Ubuntu 18.04 虽然发布已久,但仍在 LTS 支持周期内,稳定性远胜新版;CUDA 11.4 是 PyTorch 和 TensorFlow 多个重要版本共同支持的“黄金交叉点”;而 Anaconda 的环境隔离机制,则让我们可以在同一台机器上安全地运行不同需求的项目。

更重要的是,通过国内镜像离线安装核心组件,彻底规避了网络不稳定带来的不确定性。这种“确定性交付”的思路,在生产环境中尤为宝贵。

如今,无论是训练图像分类模型,还是部署 NLP 服务,这套环境都能提供坚实支撑。当你看到nvidia-smi中 GPU 利用率飙升的那一刻,就知道所有的配置努力都是值得的。

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/12 7:01:18

阿里云国际版省钱终极攻略:2025年最聪明的购买策略

对于许多开发者和企业来说&#xff0c;阿里云国际版&#xff08;Alibaba Cloud International&#xff09;是拓展全球业务的重要基石。然而&#xff0c;面对官网直接购买时可能遇到的汇率波动、国际支付门槛以及如何锁定最优折扣等问题&#xff0c;“怎么买最便宜”成了一个实实…

作者头像 李华
网站建设 2026/4/15 22:53:26

【AI语音全球化突破】:Dify 1.7.0带来哪些你不知道的多语言能力?

第一章&#xff1a;AI语音全球化突破的里程碑人工智能语音技术近年来实现了跨越式发展&#xff0c;其在全球范围内的应用已从实验室走向日常生活。多语言识别、低延迟合成与上下文语义理解的融合&#xff0c;使得语音系统能够跨越文化与地域障碍&#xff0c;为用户提供无缝交互…

作者头像 李华
网站建设 2026/4/15 16:35:14

智能Agent容器内存溢出怎么办?深入解读资源限制配置最佳实践

第一章&#xff1a;智能Agent容器内存溢出问题的根源剖析智能Agent在现代分布式系统中承担着任务调度、状态监控与自主决策等关键职能。当这些Agent以容器化形式部署时&#xff0c;内存资源受限于容器运行时的配置策略&#xff0c;极易因内存管理不当引发溢出&#xff08;OOM, …

作者头像 李华
网站建设 2026/4/16 12:43:08

MOS管的雪崩击穿

目录 简介 分析 关于雪崩击穿 热击穿 寄生晶体管引起的当前破坏 简介 当MOSFET关断时&#xff0c;若漏极与源极之间的施加电压超过绝对最大额定值VDSS&#xff0c;就会发生雪崩击穿。即使漏极的直流电压在额定范围内&#xff0c;由于布线中的寄生电感等因素&#xff0c;可…

作者头像 李华
网站建设 2026/4/16 14:23:05

为什么顶尖机构都在用R做生态评估?3个真实案例揭示其不可替代性

第一章&#xff1a;环境监测的 R 语言生态风险评估在环境科学领域&#xff0c;R 语言已成为生态风险评估的核心工具之一。其强大的统计建模能力与丰富的地理空间分析包&#xff08;如 sp, sf, raster&#xff09;相结合&#xff0c;为环境监测数据的处理、可视化和风险推断提供…

作者头像 李华