news 2026/4/18 9:48:08

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/18 3:24:54

为什么你的量子计算镜像启动慢?99%的人忽略了这4个依赖项

第一章&#xff1a;量子计算镜像的依赖精简在构建面向量子计算模拟的容器化环境时&#xff0c;系统镜像的体积与依赖复杂度直接影响部署效率与运行性能。过度依赖的传统镜像不仅增加传输开销&#xff0c;还可能引入安全漏洞。通过精简基础运行时组件&#xff0c;仅保留支持量子…

作者头像 李华
网站建设 2026/4/18 3:28:08

你不知道的单细胞数据降维黑科技:UMAP与t-SNE的R语言优化实战

第一章&#xff1a;单细胞数据降维的背景与意义单细胞RNA测序&#xff08;scRNA-seq&#xff09;技术的快速发展使得研究人员能够在单个细胞层面解析基因表达模式&#xff0c;揭示细胞异质性、发育轨迹和疾病机制。然而&#xff0c;这类数据通常具有极高的维度——每个细胞可检…

作者头像 李华
网站建设 2026/4/18 3:26:45

企业级权限管控难题,Dify如何实现Agent工具的细粒度分级?

第一章&#xff1a;企业级权限管控的挑战与Dify的应对之道在现代企业数字化转型过程中&#xff0c;权限管控已成为保障系统安全与数据合规的核心环节。随着组织规模扩大和系统复杂度上升&#xff0c;传统的角色权限模型往往难以应对精细化、动态化的访问控制需求。企业常面临权…

作者头像 李华
网站建设 2026/4/18 3:27:55

从零到一:我的单片机学习心路历程与实践全记录

查找单片机中文文献的方法中国知网&#xff08;CNKI&#xff09; 访问中国知网官网&#xff0c;使用关键词“单片机”“嵌入式系统”“STM32”等进行搜索。可以筛选期刊论文、硕博论文等文献类型&#xff0c;按相关性或时间排序。高校或研究机构通常提供免费访问权限。万方数据…

作者头像 李华
网站建设 2026/4/18 3:28:17

【江鸟中原】鸿蒙ArkTS番茄钟开发全攻略(附完整可运行代码)

番茄钟工具功能聚焦、交互逻辑清晰&#xff0c;是鸿蒙应用开发入门阶段理解组件化开发与状态管理的优质实践项目。这篇文章将以一款可直接运行的 ArkTS 番茄钟应用为核心&#xff0c;从项目搭建、代码解析到功能扩展&#xff0c;一步步拆解开发细节&#xff0c;确保每部分内容都…

作者头像 李华
网站建设 2026/4/18 3:30:44

FaceFusion开源换脸工具全解析

FaceFusion开源换脸工具全解析 最新动态&#xff1a;FaceFusion官方镜像已发布 facefusion.io | 支持一键部署Docker镜像与CLI调用 视频演示地址&#xff1a;B站 - FaceFusion全流程实操 你有没有试过&#xff0c;只用一张照片&#xff0c;就把某位演员的脸“无缝”移植到电影片…

作者头像 李华