1. 环境准备Anaconda与Python基础配置第一次接触YOLOv8时我被官方文档简洁的pip install ultralytics误导了。直到显卡风扇疯狂旋转却报出CUDA错误时才意识到Windows下的环境配置远没有想象中简单。下面分享我反复验证过的稳定方案帮你避开我踩过的所有坑。1.1 Anaconda环境搭建建议使用Anaconda3-2023.07版本Python 3.8默认环境这个组合经过实测最稳定。安装时务必勾选Add to PATH选项否则后续命令行操作会遇到各种找不到conda命令的问题。安装完成后用管理员身份打开PowerShell不是CMD执行以下命令创建专用环境conda create -n yolov8 python3.8 -y conda activate yolov8这里有个隐藏技巧创建环境后立即安装VS Build Tools否则后续某些依赖会编译失败。到微软官网下载Build Tools for Visual Studio 2022安装时只需勾选使用C的桌面开发和Windows 10 SDK两个组件。1.2 CUDA驱动验证很多人在这里会犯致命错误——只看nvidia-smi显示的CUDA版本。实际上需要检查三个版本驱动版本nvidia-smi顶部显示的Driver Version运行时版本nvcc --version输出的CUDA版本PyTorch支持的CUDA版本我强烈建议使用CUDA 11.7cuDNN 8.5的组合这是目前PyTorch 2.0最稳定的搭配。验证命令如下nvidia-smi # 查看驱动版本 nvcc --version # 查看编译器版本如果nvcc命令报错说明CUDA Toolkit没有正确安装。到NVIDIA开发者网站下载对应版本的CUDA Toolkit安装时注意取消勾选GeForce Experience等无关组件。2. PyTorch精准安装指南2.1 离线安装避坑方案官方推荐的pip install torch命令在Windows下经常出现超时或版本冲突。我的解决方案是到PyTorch官网的Previous Versions页面找到torch-2.0.1cu117开头的whl文件约2.3GB同时下载对应的torchvision、torchaudio文件下载完成后按顺序安装注意文件路径要替换成你的实际位置pip install torch-2.0.1cu117-cp38-cp38-win_amd64.whl pip install torchvision-0.15.2cu117-cp38-cp38-win_amd64.whl验证安装是否成功import torch print(torch.__version__) # 应显示2.0.1cu117 print(torch.cuda.is_available()) # 必须返回True2.2 常见问题排查如果遇到CUDA initialization错误尝试以下步骤检查环境变量PATH是否包含CUDA路径通常为C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\bin运行set CUDA_VISIBLE_DEVICES0指定显卡更新显卡驱动到最新版本有个容易忽略的细节部分笔记本电脑有双显卡需要在NVIDIA控制面板中将PowerShell设置为高性能NVIDIA处理器。3. YOLOv8环境深度配置3.1 Ultralytics库安装技巧不要直接pip install ultralytics先安装这些前置依赖conda install -y numpy1.22.4 matplotlib3.7.1 pip install opencv-python-headless4.7.0.72 pip install ultralytics8.0.196 --no-deps pip install -r https://raw.githubusercontent.com/ultralytics/ultralytics/main/requirements.txt这种分步安装方式能避免依赖冲突。特别注意opencv要安装headless版本否则在无GUI服务器上会报错。3.2 验证环境完整性创建test.py文件写入以下代码from ultralytics import YOLO model YOLO(yolov8n.pt) results model.predict(https://ultralytics.com/images/bus.jpg, saveTrue) print(results[0].boxes)运行后检查是否自动下载了yolov8n.pt权重文件当前目录是否生成runs/detect/predict目录终端是否输出检测到的物体坐标信息4. 自定义数据集训练全流程4.1 数据集准备规范YOLOv8要求特定的数据集结构这是我总结的最佳实践dataset/ ├── images/ │ ├── train/ │ ├── val/ │ └── test/ └── labels/ ├── train/ ├── val/ └── test/关键细节图片和标注文件要严格同名如001.jpg对应001.txt标注文件格式class_id x_center y_center width height归一化坐标建议使用RoboFlow等工具统一转换为YOLO格式4.2 数据集YAML文件编写创建dataset.yaml文件示例path: C:/Users/YourName/dataset train: images/train val: images/val test: images/test names: 0: person 1: car 2: traffic light常见错误排查路径必须使用正斜杠(/)反斜杠()会报错路径最好不要包含中文或空格类别ID必须从0开始连续编号4.3 训练参数调优指南启动训练的基本命令yolo taskdetect modetrain modelyolov8n.yaml datadataset.yaml epochs100 imgsz640 batch16 device0关键参数解析参数推荐值作用epochs100-300太小欠拟合太大过拟合patience50早停机制阈值batch自动根据显存调整imgsz640分辨率越高精度越好但速度越慢lr00.01初始学习率lrf0.1最终学习率系数训练过程监控技巧使用tensorboard --logdir runs/detect/train查看实时指标按CtrlC可暂停训练输入yolo resume继续训练修改参数后无需从头训练使用resumeTrue参数继续5. 模型导出与性能优化训练完成后在runs/detect/train/weights目录会生成best.pt和last.pt。导出为ONNX格式yolo export modelbest.pt formatonnx imgsz640 opset12Windows平台部署建议启用TensorRT加速添加halfTrue参数使用FP16精度对于Intel CPU导出为OpenVINO格式对于低配设备使用imgsz320缩小输入尺寸我在i7-12700H RTX3060笔记本上的实测性能模型分辨率推理速度(FPS)mAP50YOLOv8n6401420.451YOLOv8s640980.553YOLOv8m640520.627遇到显存不足时可以尝试以下组合减小batch size使用ampTrue启用自动混合精度添加workers0禁用数据预加载