2. 环境搭建:Anaconda安装、创建虚拟环境、PyTorch安装、CUDA与cuDNN配置、验证环境

说实话,环境搭建是很多初学者最头疼的一步。我见过太多人卡在这里,甚至直接放弃了。但换个角度想——你连环境都能搞定,后面写代码还怕什么?

这一章,我会带你一步步走完整个流程。从 Anaconda 到 PyTorch,再到 CUDA 和 cuDNN。嗯,每一步我都会告诉你:为什么要这么做,以及我踩过的坑。

本章核心目标: 搭建一个可运行的深度学习开发环境,确保 GPU 可用,并能跑通一个简单的 PyTorch 程序。

2.1 为什么用 Anaconda?

你可能听说过 Python 的虚拟环境。说白了,就是给你的每个项目一个独立的“小房间”。房间里的 Python 版本、库的版本互不干扰。

我个人习惯用 Anaconda 来管理这些房间。它自带 conda 命令,比 pip 更擅长处理一些底层依赖,比如 CUDA 相关的包。你想想看,如果两个项目一个要 PyTorch 1.10,一个要 2.0,没有虚拟环境,你怎么办?

小提示: 如果你硬盘空间紧张,可以装 Miniconda——它只有 Anaconda 的核心功能,没有预装那些你可能永远用不到的包。

2.2 安装 Anaconda

去官网下载对应系统的安装包。Windows 用户记得选 64-Bit Graphical Installer。Linux 用户用命令行跑 .sh 文件。

安装时有个坑——Windows 上记得勾选 "Add Anaconda to my PATH environment variable"。虽然安装程序会警告你不推荐,但我建议你勾上。不然后面每次打开终端都要手动激活 conda,很烦。

安装完成后,打开终端(或 Anaconda Prompt),输入:

conda --version

如果看到版本号,恭喜你,第一步走通了。

2.3 创建虚拟环境

我个人习惯给每个项目建一个独立环境。名字起得有意义一点,比如 yolo_env。

conda create -n yolo_env python=3.9 -y

这里指定 Python 3.9。为什么是 3.9?因为 PyTorch 对它的支持最稳定。我曾经试过 Python 3.11,结果有些库还没适配,折腾了半天。

创建完成后,激活环境:

conda activate yolo_env

你会看到终端前面多了 (yolo_env) 字样。这说明你现在就在这个“小房间”里了。

注意: 每次打开新终端,都要先 conda activate yolo_env。不然你装的包都跑到 base 环境里去了,那就白建了。

2.4 安装 PyTorch

PyTorch 的安装方式取决于你有没有 NVIDIA 显卡。先确认一下:

  • 有 NVIDIA 显卡: 去 PyTorch 官网(pytorch.org)选你的配置,复制命令。
  • 没有显卡: 装 CPU 版本,也能跑代码,就是慢一点。

以我常用的配置为例(CUDA 11.8):

conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia

如果你网速慢,可以加 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/ 用清华镜像。不过要注意,镜像站的包可能不是最新版。

小技巧: 安装时如果卡在 "Solving environment",可以试试用 pip 装:pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118。pip 有时候比 conda 快。

2.5 CUDA 与 cuDNN 配置

很多人搞不清 CUDA 和 cuDNN 的关系。我打个比方:

  • CUDA 是 NVIDIA 的“通用计算平台”,让显卡能跑通用程序。
  • cuDNN 是专门为深度学习优化的“加速库”,基于 CUDA。

换句话说,CUDA 是基础,cuDNN 是上层应用。PyTorch 安装时自带了 cuDNN,所以你通常不需要手动装。但如果你要自己编译一些底层代码,就得配好。

检查 CUDA 是否可用:

nvidia-smi

你会看到显卡信息、驱动版本、CUDA 版本。注意:这里的 CUDA 版本是驱动支持的最高版本,不是 PyTorch 用的版本。PyTorch 用的是它自己编译时链接的 CUDA 版本。

避坑指南: 我曾经在服务器上装 PyTorch,nvidia-smi 显示 CUDA 12.0,但我装了 PyTorch 的 CUDA 11.8 版本。结果跑起来完全没问题。为什么?因为驱动是向下兼容的。只要驱动版本 >= PyTorch 需要的版本就行。

2.6 验证环境

环境搭好了,得验证一下。写个简单的 Python 脚本:

import torch

# 检查 PyTorch 版本
print("PyTorch 版本:", torch.__version__)

# 检查 CUDA 是否可用
print("CUDA 可用:", torch.cuda.is_available())

# 如果可用,打印 GPU 名称
if torch.cuda.is_available():
    print("GPU 名称:", torch.cuda.get_device_name(0))
    print("GPU 数量:", torch.cuda.device_count())

保存为 check_env.py,然后在终端运行:

python check_env.py

如果输出类似这样,说明环境没问题:

PyTorch 版本: 2.0.1
CUDA 可用: True
GPU 名称: NVIDIA GeForce RTX 3080
GPU 数量: 1

如果 CUDA 可用: False,别慌。先检查显卡驱动,再确认 PyTorch 版本是否匹配。我遇到过有人装了 CPU 版本的 PyTorch,那当然检测不到 GPU。

快速验证: 跑一个简单的张量运算,看看 GPU 是否真的在工作:
import torch
x = torch.randn(3, 3).cuda()
print(x @ x.T)  # 矩阵乘法
如果没报错,说明 GPU 正常。

2.7 知识体系总览

下面这张图概括了本章的核心流程。你可以把它当作一个检查清单:

环境搭建知识体系 Anaconda / Miniconda 创建虚拟环境 安装 PyTorch CUDA 驱动检查 cuDNN 配置 验证环境 核心原则:先装驱动 → 再装 PyTorch → 最后验证。顺序别搞反。

2.8 常见问题与解决方案

问题 可能原因 解决方法
conda: command not found Anaconda 未加入 PATH 重新安装并勾选 "Add to PATH",或手动添加环境变量
torch.cuda.is_available() 返回 False PyTorch 版本与驱动不匹配,或装了 CPU 版本 运行 nvidia-smi 检查驱动版本,重新安装对应 CUDA 版本的 PyTorch
安装 PyTorch 时网络超时 默认源在国外,速度慢 使用清华镜像源,或换 pip 安装
虚拟环境激活后 pip 仍指向全局 环境变量顺序问题 运行 which pip 确认路径,必要时 conda install pip 重新安装 pip
我的经验: 如果你用的是 Windows,强烈建议用 Anaconda Prompt 而不是 cmd 或 PowerShell。Anaconda Prompt 会自动配置好环境变量,省去很多麻烦。

2.9 本章小结

环境搭建说难不难,说简单也不简单。关键在于理解每一步在做什么,而不是机械地复制命令。

记住几个要点:

  • 用 Anaconda 管理虚拟环境,隔离项目依赖
  • PyTorch 版本要和 CUDA 驱动匹配
  • 装完后一定要验证,别等到跑代码才发现问题