前言

深度学习的研究与开发严重依赖于稳定、高效且易于管理的软件环境。一个配置得当的环境可以大幅提升实验效率,避免大量因库版本冲突、驱动不兼容等问题导致的“玄学”错误。Linux 系统,特别是 Ubuntu,因其开源、稳定、强大的命令行和与硬件(尤其是 NVIDIA GPU)的良好生态,成为了深度学习领域事实上的标准操作系统。

本教程旨在提供一份从零开始的、手把手的指南,帮助初学者和有一定经验的研究者快速且正确地配置一个专业的深度学习环境。我们将使用目前最主流、最被推荐的工具组合:NVIDIA 驱动 + Conda + CUDA + cuDNN + PyTorch & TensorFlow。这种方法能实现环境隔离,方便管理不同项目所需的不同版本依赖。


第一部分:系统准备与硬件驱动

1.1 系统选择与安装

  • 推荐发行版Ubuntu LTS (22.04 LTS 或 24.04 LTS)。它拥有最广泛的社区支持和最完善的软件兼容性。
  • 安装建议
    • 在安装系统时,选择“最小化安装”以减少不必要的软件包。
    • 连接网络,确保系统安装完成后可以上网更新。
    • 系统安装完成后,首先打开终端,执行更新:
    sudo apt update && sudo apt upgrade -y
    

1.2 安装 NVIDIA GPU 驱动程序

这是最关键的一步,决定了你的 GPU 能否被系统识别并使用。

方法A:使用系统附加驱动(推荐给新手)

  1. 打开“软件和更新”应用。
  2. 切换到“附加驱动”标签页。
  3. 系统会自动扫描可用的驱动程序版本。选择一个标有“专有”和“** tested**”的推荐版本(通常是最新的版本)。
  4. 点击“应用更改”,等待下载和安装完成。
  5. 重启计算机

方法B:使用命令行(更灵活,推荐)

  1. 首先,识别你的显卡型号,并推荐驱动版本:
    ubuntu-drivers devices
    
  2. 它会输出推荐的驱动版本(如 nvidia-driver-535)。安装推荐版本及其依赖:
    sudo apt install nvidia-driver-535
    
    (请将 535 替换为 ubuntu-drivers devices 命令推荐的版本号)
  3. 重启计算机
    sudo reboot
    
  4. 验证驱动安装:重启后,在终端输入:
    nvidia-smi
    
    如果安装成功,你会看到一个表格,显示 GPU 型号、驱动版本、CUDA 版本(这里显示的是驱动支持的最高 CUDA 版本,并非已安装的 CUDA)和 GPU 运行状态。

第二部分:安装 Conda 环境管理器

我们使用 Miniconda(Anaconda 的轻量版替代)来创建和管理 Python 虚拟环境,避免全局安装带来的混乱。

2.1 下载并安装 Miniconda

  1. 访问 Miniconda 官方下载页面,复制最新的 Linux 64-bit Python 3.x 安装脚本的链接。
  2. 在终端中下载并安装:
    # 下载安装脚本
    wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
    # 运行安装脚本
    bash Miniconda3-latest-Linux-x86_64.sh
    
  3. 遵循安装提示:
    • 按回车阅读许可协议。
    • 输入 yes 同意许可条款。
    • 接受默认的安装路径(通常是 ~/miniconda3)。
    • 安装程序会问“Do you wish the installer to initialize Miniconda3?”,输入 yes。这会将 conda 添加到你的 ~/.bashrc 中。
  4. 激活 conda:
    # 关闭并重新打开终端,或者运行以下命令使配置生效
    source ~/.bashrc
    
  5. 验证安装:命令提示符前应出现 (base),表示你正处于 conda 的 base 环境中。输入:
    conda --version
    

2.2 配置 Conda 镜像(可选但强烈推荐)

为了在国内获得更快的下载速度,可以添加清华镜像源。

# 配置 conda 自身的镜像
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --set show_channel_urls yes

# 配置 pip 的镜像(后续会用到)
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

第三部分:创建深度学习环境并安装框架

3.1 创建新的虚拟环境

为一个新项目创建一个独立的环境,命名为 dl_env(你可以自定义名称),并指定 Python 版本(如 3.9):

conda create -n dl_env python=3.9 -y

激活这个环境:

conda activate dl_env

你会发现终端提示符从 (base) 变成了 (dl_env)

3.2 安装 PyTorch

最佳实践:通过官方命令安装,而不是用 conda install pytorch

  1. 访问 PyTorch 官方网站
  2. 根据你的 CUDA 版本(使用 nvidia-smi 命令右上角显示的版本,例如 12.4)选择配置。网站会自动生成最匹配的安装命令。
    • 例如:选择 Linux, Conda, Python, CUDA 12.1。
    • 它会生成类似这样的命令:
    # 例如 CUDA 12.1 版本
    conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia
    
  3. 在你的 (dl_env) 环境中运行生成的命令。

3.3 安装 TensorFlow

注意:TensorFlow 与 CUDA 版本的兼容性要求非常严格。请查阅 TensorFlow 官方安装指南 确认版本对应关系。

例如,要安装 TensorFlow 2.10 及匹配的 CUDA 11.2 和 cuDNN 8.1,你可以在 conda 环境中进行:

# 在 dl_env 环境中,安装特定版本的 TensorFlow 和配套工具
conda install -c conda-forge cudatoolkit=11.2 cudnn=8.1
pip install tensorflow==2.10

更推荐的做法:为 PyTorch 和 TensorFlow 分别创建不同的 conda 环境,因为它们对底层 CUDA 的依赖可能不同,混用容易导致冲突。


第四部分:验证安装

激活你的环境并运行简单的测试代码。

4.1 验证 PyTorch

在 Python 解释器中运行以下代码:

import torch

# 检查 PyTorch 版本和 CUDA 是否可用
print(f"PyTorch version: {torch.__version__}")
print(f"CUDA available: {torch.cuda.is_available()}")

# 如果 CUDA 可用,打印 GPU 信息
if torch.cuda.is_available():
    print(f"GPU device: {torch.cuda.get_device_name(0)}")
    print(f"CUDA version: {torch.version.cuda}")

4.2 验证 TensorFlow

在 Python 解释器中运行以下代码:

import tensorflow as tf

# 打印 TensorFlow 版本
print(f"TensorFlow version: {tf.__version__}")

# 检查 GPU 是否被识别
print(f"GPU available: {tf.config.list_physical_devices('GPU')}")

# 简单的矩阵计算测试
print(tf.add(1, 2).numpy())

如果所有输出都符合预期(显示了正确的版本号并确认 GPU 可用),那么恭喜你,深度学习环境已经配置成功!


总结与最佳实践

成功配置环境只是第一步,遵循良好的习惯才能长久地保持高效开发:

  1. 环境隔离为每个项目创建独立的 conda 环境。这是本教程中最重要的一条建议。使用 conda create -n my_project python=3.8 来创建,用 conda activate my_project 来切换。项目完成后,可以用 conda env remove -n my_project 来删除环境。
  2. 记录依赖:在每个项目环境中,使用 pip freeze > requirements.txt 将安装的包及其版本导出到一个文件中。这样便于在其他机器上复现环境。
  3. 驱动更新:NVIDIA 驱动不需要频繁更新,除非新框架或 CUDA 版本要求。更新时建议使用 apt 方式。
  4. 框架安装始终优先使用 PyTorch 和 TensorFlow 官网提供的安装命令,它们能确保你获得与 CUDA 版本最兼容的预编译版本。
  5. 镜像源:在国内使用 Conda 和 Pip 时,务必配置镜像源,能节省大量时间。
  6. 遇到问题:首先检查版本兼容性!90% 的环境问题都是由版本冲突引起的。善用 Google 和 Stack Overflow,错误信息通常能直接找到解决方案。
Logo

鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。

更多推荐