第1章:环境搭建——工欲善其事,必先利其器

各位同学,欢迎来到《交通标志与信号灯检测识别实战》的第一课。

说实话,我见过太多人一上来就急着写代码,结果环境配了三天还没跑通第一个demo。我自己刚入行那会儿也踩过这个坑——花了一整天装CUDA,最后发现版本对不上,心态直接崩了。所以这一章,咱们把地基打牢。

环境搭建说白了就四步:Anaconda安装 → 创建虚拟环境 → 安装PyTorch → 配置CUDA与cuDNN。每一步我都会把坑指出来,你跟着走就行。

1.1 Anaconda:Python的瑞士军刀

为什么要用Anaconda?因为它自带包管理器和环境管理功能。你想想看,以后做不同项目可能需要不同版本的Python、不同版本的库,总不能每次都重装系统吧?

下载与安装

  • 去官网(anaconda.com)下载对应系统的安装包。我建议选Python 3.9或3.10版本,太新或太旧都可能遇到兼容问题。
  • Windows用户注意:安装时勾选「Add Anaconda to my PATH environment variable」。虽然安装程序会警告你,但相信我,勾上能省很多事。
  • Linux/Mac用户:下载.sh文件后,在终端执行 bash Anaconda3-xxx.sh,一路yes就行。
我的小习惯:安装完后,先跑一下 conda --version 确认安装成功。如果提示找不到命令,八成是环境变量没配好。

1.2 Python虚拟环境:给每个项目一个独立的小房间

虚拟环境这东西,说白了就是隔离。你想想,项目A需要PyTorch 1.10,项目B需要PyTorch 2.0,如果没有虚拟环境,它们会打架打到死机。

创建虚拟环境

# 创建一个名为 traffic_sign 的环境,Python版本3.9
conda create -n traffic_sign python=3.9

# 激活环境
conda activate traffic_sign

# 退出环境
conda deactivate

我个人习惯给每个项目单独建一个环境,名字起得有意义一点,比如 traffic_signyolo_detection。别用 test1test2 这种名字,三个月后你自己都分不清哪个是哪个。

我曾经犯过的错:在base环境里直接装了一堆包,结果某次更新把整个环境搞崩了,所有项目都跑不了。从那以后,我坚决不在base环境里装任何项目依赖。

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

PyTorch现在几乎是工业界和学术界的主流框架。为什么选它?因为它的动态图机制让调试变得非常直观,而且社区活跃,遇到问题基本都能搜到答案。

安装命令(CPU版本)

# 激活你的虚拟环境
conda activate traffic_sign

# 安装PyTorch CPU版本
conda install pytorch torchvision torchaudio cpuonly -c pytorch

安装命令(GPU版本)——这个需要先确认你的CUDA版本,我们下一节细说。

# 假设你的CUDA是11.8
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia

安装完成后,验证一下:

python -c "import torch; print(torch.__version__)"
# 如果输出类似 2.0.1,说明安装成功
注意:千万别用 pip install torch 直接装,除非你知道自己在做什么。conda会自动处理依赖关系,pip有时候会给你装个不兼容的版本。

1.4 CUDA与cuDNN配置:让显卡跑起来

这部分是很多人的噩梦。我刚开始学的时候,光CUDA版本就重装了四次。其实没那么复杂,记住一个原则:版本匹配

第一步:检查你的显卡

# Windows/Linux通用
nvidia-smi

# 你会看到类似这样的输出:
# CUDA Version: 11.8
# 这表示你的驱动支持的最高CUDA版本是11.8

第二步:安装对应版本的CUDA Toolkit

  • 去NVIDIA官网下载CUDA Toolkit(developer.nvidia.com/cuda-toolkit-archive)
  • 选择与 nvidia-smi 显示版本一致或略低的版本
  • 我建议选11.8或12.1,这两个版本PyTorch支持得最好

第三步:安装cuDNN

  • cuDNN是深度神经网络的加速库,说白了就是让卷积运算跑得更快
  • 去NVIDIA官网下载,需要注册账号(免费)
  • 下载后解压,把bin、include、lib文件夹复制到CUDA安装目录下
避坑指南:我曾经在Windows上装cuDNN时,直接把文件复制到了C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\ 下,结果权限不够报错。正确做法是:以管理员身份运行文件管理器,或者把文件复制到用户目录下再手动配置环境变量。

第四步:验证CUDA是否可用

python -c "import torch; print(torch.cuda.is_available())"
# 如果输出 True,恭喜你,配置成功!
# 如果输出 False,检查一下PyTorch版本和CUDA版本是否匹配

1.5 完整环境验证脚本

为了确保万无一失,我习惯跑一个完整的验证脚本:

import torch
import torchvision

print("PyTorch版本:", torch.__version__)
print("torchvision版本:", torchvision.__version__)
print("CUDA是否可用:", torch.cuda.is_available())

if torch.cuda.is_available():
    print("CUDA版本:", torch.version.cuda)
    print("GPU数量:", torch.cuda.device_count())
    print("GPU名称:", torch.cuda.get_device_name(0))
else:
    print("注意:当前使用CPU模式,训练会慢很多")

如果一切正常,你会看到类似这样的输出:

PyTorch版本: 2.0.1
torchvision版本: 0.15.2
CUDA是否可用: True
CUDA版本: 11.8
GPU数量: 1
GPU名称: NVIDIA GeForce RTX 3060
最后说一句:环境搭建这一步,慢就是快。花半天时间把环境配好,后面几十个小时的编码和训练才能顺畅进行。我见过太多人因为环境问题浪费了一周时间,最后发现只是CUDA版本不对。

好了,这一章的内容就到这里。下一章我们正式开始动手——用Python读取交通标志图像,看看数据长什么样。

课后小作业:按照本章步骤,在你的电脑上搭建好环境,并跑通验证脚本。如果遇到问题,先检查版本匹配,再检查环境变量。实在搞不定,欢迎在课程群里提问。

公众号:蓝海资料掘金营,微信deep3321