第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_sign、yolo_detection。别用 test1、test2 这种名字,三个月后你自己都分不清哪个是哪个。
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安装目录下
第四步:验证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
好了,这一章的内容就到这里。下一章我们正式开始动手——用Python读取交通标志图像,看看数据长什么样。
公众号:蓝海资料掘金营,微信deep3321