第三章 深度学习环境搭建:Anaconda安装、PyTorch框架配置、CUDA与cuDNN安装、GPU环境验证
说实话,环境搭建这件事,我见过太多同学卡在这一步了。
明明代码写得很溜,结果装个PyTorch装了两天没装上。嗯,我当年刚入行时也踩过不少坑。今天咱们就把这事彻底捋清楚。
3.1 为什么需要Anaconda?
你想想看,做自动驾驶语义分割,你可能会用到PyTorch 1.x、TensorFlow 2.x,甚至还有ONNX、TensorRT这些推理框架。每个框架对Python版本、依赖库的要求都不一样。
如果全装在一个环境里,那简直就是灾难。我曾在项目中遇到过,因为numpy版本冲突,整整排查了一下午。
Anaconda说白了就是一个环境管家。它能帮你创建多个独立的Python环境,互不干扰。我个人习惯是每个项目建一个独立环境,干净又省心。
核心优势:
- 环境隔离:每个项目有自己的Python版本和依赖库
- 包管理:conda install 比 pip 更稳定,尤其对CUDA相关库
- 跨平台:Windows、Linux、macOS都能用
3.2 Anaconda安装步骤
去官网下载Anaconda,我建议选Python 3.8或3.9版本。为什么?因为PyTorch对这些版本支持最好。
# 安装完成后,验证是否成功
conda --version
# 创建新环境,我习惯用这个命名方式
conda create -n autopilot python=3.8
# 激活环境
conda activate autopilot
# 退出环境
conda deactivate
我的小技巧:创建环境时加上 -y 参数,可以跳过确认步骤。比如 conda create -n autopilot python=3.8 -y
3.3 CUDA与cuDNN:GPU加速的关键
做语义分割,没有GPU简直是折磨。一张1080Ti跑一张512x512的图片可能要几秒,有了CUDA加速,能快几十倍。
CUDA是NVIDIA的并行计算平台,cuDNN是专门为深度学习优化的加速库。两者缺一不可。
注意:CUDA版本必须和显卡驱动兼容。我建议先查一下你的显卡驱动版本,再决定装哪个CUDA。
怎么查?在命令行输入:
# Windows
nvidia-smi
# Linux
nvidia-smi
你会看到类似这样的输出:
| 项目 | 说明 |
|---|---|
| Driver Version | 显卡驱动版本,比如 525.85.05 |
| CUDA Version | 支持的最高CUDA版本,比如 12.0 |
我个人习惯装CUDA 11.8,因为PyTorch 2.0对它的支持最稳定。cuDNN选对应版本的就行。
3.4 PyTorch框架配置
这一步其实最简单。去PyTorch官网,选你的配置,它会自动生成安装命令。
# 以CUDA 11.8为例
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
# 或者用conda
conda install pytorch torchvision torchaudio cudatoolkit=11.8 -c pytorch -c nvidia
避坑指南:我曾经因为用了pip安装,结果torchvision和torch版本不匹配,训练时疯狂报错。后来我改用conda安装,再也没出过问题。建议你也用conda。
3.5 GPU环境验证
装完了,怎么知道对不对?写几行代码验证一下。
import torch
# 检查PyTorch版本
print("PyTorch版本:", torch.__version__)
# 检查CUDA是否可用
print("CUDA是否可用:", torch.cuda.is_available())
# 检查GPU数量
print("GPU数量:", torch.cuda.device_count())
# 检查当前GPU名称
if torch.cuda.is_available():
print("GPU名称:", torch.cuda.get_device_name(0))
# 简单测试:创建张量并移到GPU
x = torch.rand(3, 3)
print("CPU上的张量:", x)
if torch.cuda.is_available():
x_gpu = x.cuda()
print("GPU上的张量:", x_gpu)
print("测试通过!GPU环境配置成功!")
如果输出显示CUDA可用,并且GPU名称正确,那就恭喜你,环境搭好了。
我的经验:如果CUDA不可用,90%的原因是PyTorch版本和CUDA版本不匹配。去官网重新选一下版本,重装就好。
3.6 常见问题与解决方案
嗯,这里我整理了几个我遇到过的问题,你可能会用得上。
| 问题 | 原因 | 解决方案 |
|---|---|---|
| nvidia-smi 找不到 | 显卡驱动没装或路径不对 | 去NVIDIA官网重装驱动 |
| CUDA out of memory | 显存不够 | 减小batch size,或者换大显存显卡 |
| torch.cuda.is_available() 返回False | PyTorch和CUDA版本不匹配 | 用conda重装,指定CUDA版本 |
| cuDNN报错 | cuDNN版本不对 | 下载对应CUDA版本的cuDNN,覆盖安装 |
说实话,环境搭建这事,第一次总是最难的。但只要你按这个流程走一遍,后面就轻车熟路了。
我记得第一次给团队搭训练环境时,折腾了整整一天。现在嘛,十分钟搞定。所以别急,慢慢来。
最后提醒:做自动驾驶语义分割,GPU是刚需。如果条件允许,建议至少用RTX 3060或以上。显存越大,能跑的模型越大,效果也越好。
好了,环境搭好了,下一章咱们就开始真正动手做语义分割了。到时候我会带你从数据准备到模型训练,一步步走通整个流程。