news 2026/4/20 23:30:50

Ubuntu20.04安装TensorFlow/PyTorch GPU及开发环境

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Ubuntu20.04安装TensorFlow/PyTorch GPU及开发环境

Ubuntu 20.04 搭建 GPU 加速深度学习开发环境

在当今 AI 研发的日常中,本地训练环境的搭建依然是许多工程师和研究者绕不开的第一步。尤其是在使用 PyTorch 或 TensorFlow 进行模型训练时,能否顺利启用 GPU 加速,往往直接决定了开发效率的高低。然而,面对 NVIDIA 驱动、CUDA、cuDNN 和框架版本之间错综复杂的依赖关系,即便是有经验的开发者也容易踩坑。

本文基于Ubuntu 20.04 LTS实际部署经验,完整梳理从系统配置到 IDE 集成的全流程。所选版本均经过实测验证兼容性,适用于主流 NVIDIA 显卡(如 GTX 16xx / RTX 20xx / 30xx),特别适合希望快速构建稳定本地训练平台的科研人员与机器学习初学者。

整个过程以“最小干扰、最大成功率”为原则:使用国内镜像源加速下载,避免虚拟机环境导致的 GPU 不可用问题,并通过 conda 虚拟环境实现多项目隔离。最终目标是让你在一天之内拥有一个可立即投入使用的 AI 开发工作站。


Anaconda:科学计算的起点

Python 生态中,包管理和环境隔离一直是痛点。Anaconda 的出现极大简化了这一流程——它不仅自带 Python 解释器,还集成了conda包管理工具和数百个常用库,是数据科学领域的事实标准。

我们选择通过命令行安装最新版 Anaconda(以Anaconda3-2023.03-Linux-x86_64.sh为例),并优先使用清华镜像站提升下载速度:

wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2023.03-Linux-x86_64.sh bash Anaconda3-2023.03-Linux-x86_64.sh

安装过程中建议接受默认路径(通常为/home/用户名/anaconda3),并在最后一步选择初始化 conda,这样可以自动将 conda 添加到 shell 环境变量中。

安装完成后执行:

source ~/.bashrc

验证是否成功:

conda --version python --version

接下来创建一个独立的虚拟环境用于深度学习任务:

conda create -n dl_env python=3.9 conda activate dl_env

此时终端提示符前应出现(dl_env)标识,表示已进入该环境。后续所有框架安装操作都应在这一环境中进行,避免污染全局 Python 环境或引发版本冲突。

💡 小贴士:你可以用conda env list查看当前所有环境,用conda deactivate退出当前环境。对于不同项目,推荐按需创建多个专用环境(如cv_env,nlp_env)。


NVIDIA 显卡驱动:GPU 加速的前提

没有正确的显卡驱动,再强大的 GPU 也只能“躺平”。Ubuntu 20.04 对 NVIDIA 显卡的支持已经相当成熟,提供了图形化和命令行两种安装方式。

如果你使用的是桌面环境,最简单的方法是打开「软件和更新」→「附加驱动」,系统会自动检测可用的专有驱动。选择标记为 “proprietary, tested” 的版本(例如nvidia-driver-470或更高),点击“应用更改”即可完成安装。

服务器用户或无 GUI 场景下,则可通过命令行完成:

sudo apt update ubuntu-drivers devices # 查看推荐驱动 sudo ubuntu-drivers autoinstall

安装完成后务必重启系统:

sudo reboot

重启后运行以下命令验证驱动状态:

nvidia-smi

如果能看到类似如下输出,说明驱动已正常加载:

+-----------------------------------------------------------------------------+ | NVIDIA-SMI 470.182.03 Driver Version: 470.182.03 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 3060 Off | 00000000:01:00.0 On | N/A | | 30% 45C P8 12W / 170W | 1024MiB / 12288MiB | 5% Default | +-------------------------------+----------------------+----------------------+

注意:这里的CUDA Version表示当前驱动所能支持的最高 CUDA 版本(这里是 11.4),并不代表你已经安装了 CUDA Toolkit。这一点常被误解,务必区分清楚。


安装 CUDA Toolkit:并行计算的核心引擎

CUDA 是 NVIDIA 提供的通用并行计算架构,PyTorch 和 TensorFlow 的 GPU 加速底层都依赖于它。虽然现在也有 ROCm 等替代方案,但对于大多数用户来说,CUDA 仍是首选。

根据 TensorFlow 官方文档,TensorFlow 2.10 是最后一个支持 CUDA 11.x 的版本,且明确要求使用CUDA 11.2。因此为了兼容双框架,我们锁定安装 CUDA 11.2。

首先从清华镜像站下载 runfile 安装包:

wget https://developer.download.nvidia.com/compute/cuda/11.2.2/local_installers/cuda_11.2.2_460.32.03_linux.run sudo sh cuda_11.2.2_460.32.03_linux.run

⚠️ 安装时关键点:
-取消勾选 “Driver” 选项(因为我们已单独安装驱动)
- 其余组件保持默认(包括 CUDA Toolkit、Samples)

安装完成后需要配置环境变量。编辑~/.bashrc文件:

nano ~/.bashrc

在末尾添加:

# CUDA Environment Variables export PATH=/usr/local/cuda-11.2/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-11.2/lib64:$LD_LIBRARY_PATH export CUDA_HOME=/usr/local/cuda-11.2

保存后执行:

source ~/.bashrc

验证安装是否成功,可以通过编译 CUDA 自带的设备检测程序:

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

若看到Result = PASS,则表明 CUDA 工具链已正确安装并可访问 GPU。


安装 cuDNN:深度学习性能加速器

cuDNN(CUDA Deep Neural Network library)是 NVIDIA 针对深度学习运算高度优化的底层库,尤其在卷积、池化、归一化等操作上能带来显著性能提升。几乎所有主流框架都会调用它来加速训练过程。

要获取 cuDNN,需先注册 NVIDIA Developer 账号,然后下载对应版本:

  • cuDNN v8.1.1 for CUDA 11.2
  • 文件名:cudnn-11.2-linux-x64-v8.1.1.33.tgz

下载后解压:

tar -xzvf cudnn-11.2-linux-x64-v8.1.1.33.tgz

将头文件和库文件复制到 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*

这一步完成后,cuDNN 即已就位。虽然没有直接的命令行工具验证其功能,但只要后续框架能正常识别 GPU 并运行训练任务,就说明 cuDNN 已被正确调用。


安装 TensorFlow-GPU:工业级框架落地

TensorFlow 曾经是深度学习领域的霸主,至今仍在生产部署中占据重要地位。尽管其动态图体验不如 PyTorch 灵活,但在模型导出、服务化部署方面依然具备优势。

我们选择安装TensorFlow 2.10.0,这是最后一个支持 CUDA 11.2 的版本(后续版本转向 CUDA 11.8+)。确保当前处于dl_env环境中:

conda activate dl_env

使用 pip 安装,并指定国内镜像源加速:

pip install tensorflow-gpu==2.10.0 -i https://pypi.tuna.tsinghua.edu.cn/simple

📌 注:自 TensorFlow 2.1 起,“tensorflow” 包本身已包含 GPU 支持,因此也可以直接安装tensorflow

安装完成后进入 Python 测试 GPU 是否被识别:

import tensorflow as tf print("TensorFlow Version:", tf.__version__) print("Built with CUDA:", tf.test.is_built_with_cuda()) print("GPU Available:", tf.config.list_physical_devices('GPU')) for device in tf.config.list_physical_devices(): print(device)

理想输出应包含:

TensorFlow Version: 2.10.0 Built with CUDA: True GPU Available: [PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]

如果返回空列表,则可能是 CUDA/cuDNN 版本不匹配,或环境变量未生效。此时建议检查nvidia-smi输出以及.bashrc中的路径设置。


安装 PyTorch-GPU:研究者的首选框架

PyTorch 凭借其“定义即运行”(define-by-run)的动态图机制,成为学术界和实验性开发的首选。它的调试友好性和模块化设计让研究人员能够快速迭代想法。

访问 PyTorch 官网,选择 Linux + Pip + CUDA 11.8 选项,得到如下命令:

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 -i https://pypi.tuna.tsinghua.edu.cn/simple

虽然这里写的是cu118,但实际上 PyTorch 官方 wheel 包对 CUDA 11.2 兼容良好,无需严格匹配。这是因为 PyTorch 使用静态链接部分 CUDA 运行时库,降低了对外部 CUDA 版本的依赖。

验证安装:

import torch print("PyTorch Version:", torch.__version__) print("CUDA Available:", torch.cuda.is_available()) print("CUDA Version:", torch.version.cuda) print("GPU Count:", torch.cuda.device_count()) if torch.cuda.is_available(): print("Current GPU:", torch.cuda.get_device_name(0))

预期输出:

CUDA Available: True Current GPU: NVIDIA GeForce RTX 3060

一旦看到True,恭喜你,PyTorch 也已成功接入 GPU。


配置 PyCharm:打造高效开发工作台

有了底层环境还不够,一个顺手的 IDE 才能让开发事半功倍。PyCharm(尤其是 Professional 版)因其强大的代码补全、调试能力和 Jupyter Notebook 集成,成为许多 AI 工程师的主力工具。

前往 JetBrains 官网下载社区版或专业版:

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/

启动:

/opt/pycharm-community-2023.1/bin/pycharm.sh

首次运行时,在新建项目阶段需要配置解释器。关键步骤是选择:

Existing environment Location: /home/你的用户名/anaconda3/envs/dl_env/bin/python

这样 PyCharm 就能识别你在dl_env中安装的所有包,包括 TensorFlow 和 PyTorch。

一些实用建议:
- 安装插件:Jupyter、Markdown、Python Docstring Generator
- 启用 Darcula 主题减少长时间编码的视觉疲劳
- 设置快捷键绑定终端(Alt+F12),方便随时运行 shell 命令
- 若使用远程服务器开发,可配置 SSH Interpreter 实现无缝协同


这套环境的最大价值在于“可复现”和“可持续”。当你换电脑或重装系统时,只需保留.bashrc配置和 conda 环境导出脚本,就能在几小时内重建完全一致的开发平台。

更重要的是,这种分层结构清晰地划分了职责:操作系统层负责驱动,CUDA 层提供计算能力,框架层专注算法实现,IDE 层优化交互体验。每一层都可以独立升级或替换,而不轻易破坏整体稳定性。

如今,随着容器化技术(如 Docker + NVIDIA Container Toolkit)的发展,这类手动配置的需求正在减少。但对于大多数个人开发者而言,掌握这套原生安装流程,仍然是理解深度学习运行机制的重要基础。

当你第一次看到nvidia-smi中 GPU 利用率飙升到 90% 以上,而损失函数曲线稳步下降时,那种“一切尽在掌控”的感觉,正是亲手搭建环境带来的独特成就感。

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

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

力扣701 二叉搜索树中的插入操作 java实现

701.二叉搜索树中的插入操作给定二叉搜索树(BST)的根节点 root 和要插入树中的值 value ,将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 输入数据 保证 ,新值和原始二叉搜索树中的任意节点值都不同。注意,可能…

作者头像 李华
网站建设 2026/4/21 15:27:57

TensorFlow-GPU安装全指南:版本匹配与实操避坑

TensorFlow-GPU 安装实战指南:绕过版本陷阱,一次成功 在深度学习的世界里,本地 GPU 环境就像炼丹炉——谁不想亲手点燃那团算力之火?可现实往往是:折腾三天三夜,连 tf.device(/GPU) 都跑不通。报错信息五花…

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

LobeChat能否实现AI猜谜游戏?娱乐化交互场景开发

LobeChat能否实现AI猜谜游戏?娱乐化交互场景开发 在智能对话系统日益普及的今天,用户早已不满足于“问一句答一句”的机械互动。他们期待的是更自然、更有趣、甚至带点“人情味”的交流体验——比如和一个会出谜题、能引导思考、还会适时鼓励你的AI玩一场…

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

和鲸科技创始人CEO 范向伟受邀赴港亮相 AI 赋能・科技自立 —— 中小企业创新与机遇高峰论坛并做主题演讲

本文内容节选自:香港中小上市公司协会,内容略有删改2025年12月5日,由香港中小上市公司协会(下文简称「协会」)联同深圳市金融商会主办的「AI赋能・科技自立——中小企业创新与机遇高峰论坛」,于香港四季酒店…

作者头像 李华
网站建设 2026/4/18 10:24:11

Cypress 入门与优势分析:前端自动化测试的新利器

近两年,前端自动化测试在各大互联网团队中越来越火,而 Cypress 作为新一代前端自动化框架,成为开发和 QA 团队热议的对象。 本文将从前端测试痛点、核心功能、Cypress 流程和对比分析带你快速了解它的价值。 1. 前端自动化测试痛点 调试困难…

作者头像 李华
网站建设 2026/4/16 21:48:58

鸿蒙高性能图形绘制

说明 HarmonyOs ArkGraphics 2D(方舟2D图形服务 )提供的绘制引擎,如果在 ArkUI 侧绘制,对绘制性能有高要求的话,那就直接放弃,转Native绘制配合 GPU 后端渲染。(想到这儿我浑身难受&#xff09…

作者头像 李华