2. 深度学习环境配置

说实话,做深度学习这几年,我踩过最多的坑就是环境配置。你想想看,好不容易写好代码,一跑起来报错「CUDA driver version is insufficient」——那种感觉,真的让人想砸电脑。

所以这一章,咱们就把环境彻底搞定。我个人的习惯是,先搭好地基再盖楼。Anaconda就是那个地基,PyTorch是楼的主体,CUDA和cuDNN是楼里的水电系统。一个都不能少。

核心要点:环境配置决定了你后续所有实验的成败。别嫌麻烦,一步到位最省心。

1. Anaconda安装:Python的「瑞士军刀」

Anaconda是什么?说白了就是一个Python发行版,自带包管理器和环境管理功能。我刚开始做项目时,经常遇到「这个项目要Python 3.6,那个项目要Python 3.8」的尴尬。Anaconda的虚拟环境功能完美解决了这个问题。

安装步骤:

  1. 去Anaconda官网下载对应系统的安装包(Windows/Linux/macOS)
  2. 双击安装,一路默认即可。但注意:安装路径不要有中文和空格
  3. 安装完成后,打开终端(Windows用Anaconda Prompt),输入 conda --version 验证

我的小技巧:安装时勾选「Add Anaconda to my PATH environment variable」,这样可以在任何终端直接使用conda命令。不过如果你用Windows,我建议还是用Anaconda Prompt,省得出幺蛾子。

验证安装成功后,我们来创建一个干净的虚拟环境:

conda create -n mobilevit python=3.8
conda activate mobilevit

为什么要用Python 3.8?嗯,这里要注意:PyTorch对Python版本有要求,3.8是目前兼容性最好的版本。我在项目中试过3.9和3.10,有些老库会报错。

2. PyTorch框架安装:深度学习的心脏

PyTorch现在几乎是深度学习领域的标配了。我个人从TensorFlow转过来后,就再也没回去过——PyTorch的调试体验真的太舒服了。

安装PyTorch前,先确认你的机器有没有NVIDIA显卡。有显卡的话,可以装CUDA版本;没有的话,装CPU版本也能跑,就是慢点。

安装命令(以CUDA 11.8为例):

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

如果你没有显卡,用这个:

pip install torch torchvision torchaudio

避坑指南:我曾经直接用 pip install torch 装了个CPU版本,结果跑了两天模型才发现GPU根本没在用。所以装完后一定要验证一下:

import torch
print(torch.cuda.is_available())  # 输出True说明CUDA可用

3. CUDA与cuDNN配置:让GPU跑起来

CUDA是NVIDIA的并行计算平台,cuDNN是深度神经网络的加速库。说白了,没有它们,你的GPU就是个摆设。

CUDA安装步骤:

  1. 去NVIDIA官网下载CUDA Toolkit(推荐11.8或12.1版本)
  2. 安装时选择自定义安装,只勾选「CUDA」组件
  3. 安装完成后,在终端输入 nvcc --version 验证

cuDNN安装步骤:

  1. 去NVIDIA官网下载cuDNN(需要注册账号)
  2. 解压后,把bin、include、lib文件夹复制到CUDA安装目录下
  3. 添加环境变量:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\bin

重要提醒:CUDA版本和PyTorch版本必须匹配。比如PyTorch 2.0对应CUDA 11.8,PyTorch 2.1对应CUDA 12.1。不匹配的话,你会看到各种奇怪的报错。

验证cuDNN是否安装成功:

# 在Python中运行
import torch
print(torch.backends.cudnn.is_available())  # 输出True说明cuDNN可用

4. 常用Python库安装:工具箱里的螺丝刀

做语义分割,有几个库是绕不开的。我整理了一个清单:

库名 用途 安装命令
OpenCV 图像读取、预处理、可视化 pip install opencv-python
Matplotlib 数据可视化、结果展示 pip install matplotlib
tqdm 进度条显示 pip install tqdm
NumPy 数值计算基础库 pip install numpy
Pillow 图像处理替代方案 pip install pillow

一次性安装所有库:

pip install opencv-python matplotlib tqdm numpy pillow

我的经验:tqdm这个库看着不起眼,但训练模型时看着进度条一点点走,心里踏实多了。我习惯在训练循环里加上tqdm,这样能实时看到每个epoch的进度和损失值。

5. 验证环境:跑一个简单的测试

环境配好了,咱们跑个测试看看:

import torch
import cv2
import numpy as np
from tqdm import tqdm

print(f"PyTorch版本: {torch.__version__}")
print(f"CUDA是否可用: {torch.cuda.is_available()}")
print(f"cuDNN是否可用: {torch.backends.cudnn.is_available()}")
print(f"OpenCV版本: {cv2.__version__}")
print(f"NumPy版本: {np.__version__}")

# 创建一个简单的张量测试
x = torch.randn(3, 224, 224)
if torch.cuda.is_available():
    x = x.cuda()
    print(f"张量在GPU上: {x.device}")
else:
    print("张量在CPU上")

如果所有输出都正常,恭喜你,环境配置完成了!

知识体系总览

下面这张图展示了本章节的核心逻辑:

深度学习环境配置知识体系 深度学习环境 Anaconda 虚拟环境管理 包管理器 PyTorch框架 张量计算 自动求导 CUDA + cuDNN GPU加速 深度网络优化 常用Python库 OpenCV Matplotlib tqdm NumPy 环境验证 → 跑通测试代码 → 开始MobileViT实战

这张图把整个环境配置的脉络理清楚了。从Anaconda这个基础环境开始,往上搭建PyTorch框架,再配置CUDA和cuDNN让GPU跑起来,最后装上各种常用库。每一步都是下一步的前提,缺一不可。

最后提醒一句:如果你在安装过程中遇到任何问题,别慌。先检查版本是否匹配,再确认环境变量有没有配好。我当年配CUDA时,整整折腾了一天,最后发现是PATH变量写错了路径。这种坑,踩过一次就记住了。