2. 环境搭建与工具链:Anaconda、PyTorch、CUDA、cuDNN安装与验证、IDE配置

说实话,环境搭建是深度学习入门的第一道坎。我见过太多同学在群里问「为什么我的代码跑不起来」,最后发现是CUDA版本没对上。这一章,咱们就把这套工具链彻底理清楚。

2.1 整体架构:一张图看懂工具链

先别急着装软件。你得知道这些东西是怎么配合的。我画了张图,你看完就明白每层是干什么的了。

深度学习环境工具链分层架构 应用层:PyTorch / TensorFlow / Jupyter Notebook 包管理:Anaconda / pip / conda 计算库:cuDNN / MKL / OpenBLAS 驱动层:NVIDIA GPU Driver + CUDA Toolkit 硬件层:NVIDIA GPU(如 RTX 3060 / A100) 从下往上逐层安装

说白了,GPU驱动是地基,CUDA是钢筋,cuDNN是水泥,PyTorch是盖好的房子。你跳着装,房子肯定歪。

2.2 Anaconda:环境隔离的艺术

我个人习惯,每个项目都建一个独立的conda环境。为什么?因为不同项目依赖的PyTorch版本可能不一样。我曾经因为一个旧项目需要PyTorch 1.7,新项目要2.0,在同一个环境里折腾了一下午——后来全删了,老老实实用conda。

2.2.1 安装步骤

  1. 下载:去Anaconda官网下载对应系统的安装包。Windows选64位,别选32位。
  2. 安装:一路默认就行。但有一个选项要注意——Add Anaconda to PATH,我建议勾上。虽然安装提示说「不推荐」,但你不勾的话后面每次都要手动加路径,烦得很。
  3. 验证:打开终端(Windows用Anaconda Prompt),输入:
conda --version
# 输出类似:conda 24.1.2
小技巧:如果conda命令找不到,八成是PATH没配好。Windows用户去「系统环境变量」里手动加上 C:\Users\你的用户名\anaconda3\Scripts。

2.2.2 创建虚拟环境

这是conda最核心的功能。我一般这样建:

# 创建环境,指定Python版本
conda create -n defect_detection python=3.10

# 激活环境
conda activate defect_detection

# 退出环境
conda deactivate

你想想看,如果不用虚拟环境,你装一个包可能把系统Python搞崩。我有个同事就是直接在base环境里装东西,结果把系统自带的Python搞坏了,重装了系统……

2.3 CUDA与cuDNN:GPU加速的钥匙

这里是最容易踩坑的地方。CUDA版本、显卡驱动版本、PyTorch版本,三者必须匹配。不匹配?训练直接报错,或者干脆用不了GPU。

2.3.1 检查你的显卡

先看看你电脑有没有NVIDIA显卡:

nvidia-smi

如果显示「不是内部或外部命令」,说明你没装驱动。去NVIDIA官网下载对应驱动。装完重启,再跑一次。

输出里有一行很重要:CUDA Version: 12.1。这个数字决定了你能装什么版本的CUDA Toolkit。

注意:nvidia-smi显示的CUDA版本是驱动支持的最高版本,不是你实际安装的CUDA Toolkit版本。你可以装比这个低的版本,但不能装更高的。

2.3.2 安装CUDA Toolkit

去NVIDIA官网下载CUDA Toolkit。我建议选11.8或12.1,这两个版本PyTorch官方支持得最好。

# 安装完成后验证
nvcc --version
# 输出类似:Cuda compilation tools, release 11.8, V11.8.89

嗯,这里要注意:nvcc --version显示的才是你实际安装的CUDA版本。很多人只看nvidia-smi,结果装错了。

2.3.3 安装cuDNN

cuDNN是NVIDIA的深度学习加速库。你需要注册NVIDIA开发者账号才能下载。下载时注意版本要和CUDA匹配。

安装其实就是把文件解压后复制到CUDA目录:

# Windows示例:把解压后的bin、include、lib文件夹
# 复制到 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\
版本匹配速查表(我整理过,直接照着选):
PyTorch版本 推荐CUDA 推荐cuDNN 最低驱动版本
2.0.x 11.8 8.7 520.61
2.1.x 12.1 8.9 530.30
2.2.x 12.1 8.9 535.54

2.4 PyTorch安装:最关键的步骤

装PyTorch其实就一行命令。但关键是选对版本。去PyTorch官网的「Get Started」页面,它会根据你的系统生成安装命令。

# 以CUDA 11.8为例
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

# 或者用conda(我更喜欢conda,依赖管理更稳)
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia
个人建议:如果你网络不好,可以加清华镜像源。但注意,PyTorch的CUDA版本包在官方源里最全,镜像源可能缺某些版本。

2.5 验证环境:别急着写代码

装完了,先跑个验证脚本。我每次装完新环境都会跑一遍这个:

import torch
import torchvision

print("PyTorch版本:", torch.__version__)
print("CUDA是否可用:", torch.cuda.is_available())
print("GPU数量:", torch.cuda.device_count())
print("GPU名称:", torch.cuda.get_device_name(0) if torch.cuda.is_available() else "无GPU")

# 跑一个简单的张量运算
x = torch.rand(3, 3).cuda()
y = torch.rand(3, 3).cuda()
z = x + y
print("GPU计算测试通过:", z)

如果输出CUDA是否可用: True,恭喜你,环境搭好了。如果显示False,别慌,90%的情况是版本不匹配。

我曾经踩过的坑:有一次装完PyTorch,torch.cuda.is_available()一直返回False。查了半天,发现是conda环境里自动装了CPU版本的PyTorch。解决方案:conda uninstall pytorch,然后用官网命令重装。

2.6 IDE配置:PyCharm与Jupyter

环境搭好了,总得有个趁手的编辑器。我平时两个都用:PyCharm写项目代码,Jupyter做实验和调试。

2.6.1 PyCharm配置

  1. 新建项目:选择「Existing interpreter」,然后选你刚才创建的conda环境。
  2. 设置解释器:File → Settings → Project → Python Interpreter → 点击齿轮 → Add → Conda Environment → Existing environment → 找到 envs/defect_detection/python.exe。
  3. 验证:在PyCharm终端里输入python,然后import torch,不报错就对了。
小技巧:PyCharm Professional版支持远程开发。如果你在服务器上训练,本地写代码,这个功能很香。Community版没有,但够用。

2.6.2 Jupyter Notebook配置

Jupyter我主要用来做数据探索和模型调试。在conda环境里装一下:

conda activate defect_detection
conda install jupyter notebook
jupyter notebook

然后浏览器里打开,新建一个Notebook,跑一下刚才的验证代码。如果一切正常,你就可以开始写模型了。

2.7 本章小结

环境搭建说白了就三步:装Anaconda → 装CUDA+cuDNN → 装PyTorch。每一步都有对应的验证方法,别跳步骤。我见过太多人「装完就跑」,结果训练时才发现GPU没用上,回头再排查,浪费时间。