1. Windows下CUDA环境配置全攻略第一次在Windows上配置CUDA环境时我对着满屏的版本号差点崩溃——CUDA Toolkit、cuDNN、PyTorch版本必须严格匹配一个环节出错就会导致后续训练报错。经过多次踩坑后我总结出这套零基础也能搞定的配置方案。先确认你的NVIDIA显卡是否支持CUDA。打开cmd输入nvidia-smi右上角会显示最高支持的CUDA版本比如12.4。这个数字很重要后续所有组件版本都不能超过它。我的RTX 3060显示支持CUDA 12.4意味着我可以安装≤12.4的任何版本。关键选择PyTorch官方稳定版目前2024年7月最高只支持CUDA 12.1因此我们选择CUDA Toolkit 12.1cuDNN 8.9.0需与CUDA 12.1匹配PyTorch 2.2.1安装CUDA Toolkit时有个巨坑安装程序默认勾选Visual Studio Integration。如果你没装VS一定要取消这个选项否则安装会卡死在50%。其他选项保持默认安装完成后添加环境变量C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\bin C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\libnvvp测试是否成功nvcc -V应显示12.1版本。cuDNN的安装其实是文件替换下载的zip包解压后将bin/include/lib三个文件夹复制到CUDA安装目录。建议用Everything搜索cudnn64_8.dll确认位置是否正确。2. 用Anaconda打造专属训练环境为什么需要虚拟环境上周我同事的YOLOv7训练突然报错原因是另一个项目修改了共享的Python包。用conda创建独立环境能完美解决这类问题conda create -n yolov5_lite python3.8 -y conda activate yolov5_lite安装PyTorch GPU版时务必指定版本pip install torch2.2.1 torchvision0.17.1 torchaudio2.2.1 --index-url https://download.pytorch.org/whl/cu121验证GPU是否可用import torch print(torch.cuda.is_available()) # 应该输出True print(torch.cuda.get_device_name(0)) # 显示你的显卡型号遇到过CUDA不可用的情况90%是因为PyTorch版本与CUDA不匹配没激活虚拟环境显卡驱动太旧去官网更新3. YOLOv5-Lite实战训练技巧从GitHub克隆YOLOv5-Lite代码时建议用国内镜像加速git clone https://gitee.com/mirrors/YOLOv5-Lite.git cd YOLOv5-Lite数据集准备有个隐藏知识点如果部署目标是树莓派训练数据最好直接用树莓派摄像头采集。我用RPi Camera V2拍摄的苹果检测数据比网络下载的COCO数据mAP提升15%。标注工具推荐labelImg有个效率翻倍的技巧设置默认标签如apple开启自动保存模式使用快捷键W创建标注框文件结构要严格按这个格式组织dataset/ ├── train/ │ ├── images/ # 存放JPG文件 │ └── labels/ # 存放对应的txt标注 ├── val/ │ ├── images/ │ └── labels/ └── test/ ├── images/ └── labels/修改data/mydata.yaml时注意train: C:/Users/xxx/dataset/train/images # 必须用正斜杠 val: C:/Users/xxx/dataset/val/images nc: 1 # 类别数 names: [apple] # 类别名称4. 模型转换与树莓派部署实战训练完成后最佳模型保存在runs/train/exp/weights/best.pt。转换成ONNX格式前先安装必要依赖pip install onnx1.14.0 onnxruntime1.16.0运行export.py时有个关键参数python export.py --weights best.pt --img 256 --batch 1 --simplify--simplify会优化模型结构使推理速度提升20%。转换后的best.onnx文件会小30%左右。在树莓派4B上部署时先安装优化版的onnxruntimepip install onnxruntime-1.16.0-cp39-cp39-linux_armv7l.whl实测发现两个性能提升技巧使用onnxruntime.set_default_logger_severity(3)关闭日志输出帧率提升5%输入图像尺寸设为256x256时树莓派4B能达到18FPS最后用OpenCV调用模型的示例代码import cv2 import onnxruntime as ort session ort.InferenceSession(best.onnx) input_name session.get_inputs()[0].name def detect(frame): blob cv2.dnn.blobFromImage(frame, 1/255.0, (256,256)) outputs session.run(None, {input_name: blob}) # 后处理代码...记得用散热风扇连续推理10分钟后树莓派CPU温度会达到75℃以上导致自动降频。我在外壳加了5V小风扇后温度稳定在45℃左右。