第三章 深度学习环境搭建: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或以上。显存越大,能跑的模型越大,效果也越好。

好了,环境搭好了,下一章咱们就开始真正动手做语义分割了。到时候我会带你从数据准备到模型训练,一步步走通整个流程。