2. 环境搭建与工具链:Anaconda、PyTorch、CUDA、cuDNN安装与验证、IDE配置
说实话,环境搭建是深度学习入门的第一道坎。我见过太多同学在群里问「为什么我的代码跑不起来」,最后发现是CUDA版本没对上。这一章,咱们就把这套工具链彻底理清楚。
2.1 整体架构:一张图看懂工具链
先别急着装软件。你得知道这些东西是怎么配合的。我画了张图,你看完就明白每层是干什么的了。
说白了,GPU驱动是地基,CUDA是钢筋,cuDNN是水泥,PyTorch是盖好的房子。你跳着装,房子肯定歪。
2.2 Anaconda:环境隔离的艺术
我个人习惯,每个项目都建一个独立的conda环境。为什么?因为不同项目依赖的PyTorch版本可能不一样。我曾经因为一个旧项目需要PyTorch 1.7,新项目要2.0,在同一个环境里折腾了一下午——后来全删了,老老实实用conda。
2.2.1 安装步骤
- 下载:去Anaconda官网下载对应系统的安装包。Windows选64位,别选32位。
- 安装:一路默认就行。但有一个选项要注意——
Add Anaconda to PATH,我建议勾上。虽然安装提示说「不推荐」,但你不勾的话后面每次都要手动加路径,烦得很。 - 验证:打开终端(Windows用Anaconda Prompt),输入:
conda --version
# 输出类似:conda 24.1.2
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。
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
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%的情况是版本不匹配。
torch.cuda.is_available()一直返回False。查了半天,发现是conda环境里自动装了CPU版本的PyTorch。解决方案:conda uninstall pytorch,然后用官网命令重装。
2.6 IDE配置:PyCharm与Jupyter
环境搭好了,总得有个趁手的编辑器。我平时两个都用:PyCharm写项目代码,Jupyter做实验和调试。
2.6.1 PyCharm配置
- 新建项目:选择「Existing interpreter」,然后选你刚才创建的conda环境。
- 设置解释器:File → Settings → Project → Python Interpreter → 点击齿轮 → Add → Conda Environment → Existing environment → 找到
envs/defect_detection/python.exe。 - 验证:在PyCharm终端里输入
python,然后import torch,不报错就对了。
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没用上,回头再排查,浪费时间。