YOLOv12进阶使用:手把手教你训练自定义数据集
YOLOv12进阶使用手把手教你训练自定义数据集1. 准备工作与环境配置1.1 镜像环境概述YOLOv12官方镜像已经预装了所有必要的依赖项包括Python 3.11环境PyTorch 2.3.0 CUDA 12.1Flash Attention v2加速模块Ultralytics 8.3.0及以上版本进入容器后首先激活环境conda activate yolov12 cd /root/yolov121.2 数据集准备指南训练自定义数据集需要按照以下结构组织文件custom_dataset/ ├── images/ │ ├── train/ │ │ ├── image1.jpg │ │ └── image2.jpg │ └── val/ │ ├── image3.jpg │ └── image4.jpg └── labels/ ├── train/ │ ├── image1.txt │ └── image2.txt └── val/ ├── image3.txt └── image4.txt每个标签文件应为YOLO格式class_id x_center y_center width height1.3 创建数据集配置文件在/root/yolov12目录下创建custom.yaml文件# 自定义数据集配置文件 path: /workspace/datasets/custom_dataset train: images/train val: images/val # 类别数量与名称 nc: 3 # 修改为你的类别数量 names: [class1, class2, class3] # 修改为你的类别名称2. 模型训练全流程2.1 基础训练命令使用以下Python脚本开始训练from ultralytics import YOLO # 加载模型配置 model YOLO(yolov12n.yaml) # 可根据需要选择n/s/m/l/x # 开始训练 results model.train( datacustom.yaml, epochs300, batch64, imgsz640, device0, # 使用GPU 0 ampTrue, # 启用混合精度训练 workers8 # 数据加载线程数 )2.2 关键参数详解参数推荐值说明epochs100-600根据数据集大小调整batch32-256取决于GPU显存imgsz640输入图像尺寸scale0.5-0.9数据增强缩放比例mosaic1.0马赛克增强概率mixup0.0-0.2图像混合增强概率copy_paste0.1-0.6复制粘贴增强概率2.3 多GPU训练配置如果有多个GPU可以这样配置results model.train( # ...其他参数不变... device0,1,2,3, # 使用4个GPU batch256, # 总batch size )3. 训练监控与优化3.1 训练过程可视化训练过程中会自动生成以下日志runs/train/exp/weights/: 保存最佳模型和最后模型runs/train/exp/results.csv: 训练指标记录runs/train/exp/events.out.tfevents.*: TensorBoard日志启动TensorBoard查看训练曲线tensorboard --logdir runs/train3.2 常见问题解决问题1显存不足(OOM)解决方案减小batch大小启用ampTrue关闭mosaic或mixup问题2训练不收敛解决方案检查数据标注质量调整学习率(lr0参数)增加epochs问题3验证mAP低解决方案增加验证集多样性检查类别不平衡问题4. 模型验证与导出4.1 验证模型性能训练完成后使用以下命令验证模型from ultralytics import YOLO model YOLO(runs/train/exp/weights/best.pt) model.val(datacustom.yaml, batch32)4.2 导出为生产格式导出为ONNX格式model.export(formatonnx, imgsz640, opset17)导出为TensorRT引擎model.export(formatengine, halfTrue)5. 实际应用示例5.1 使用训练好的模型进行推理from ultralytics import YOLO model YOLO(runs/train/exp/weights/best.pt) results model.predict( sourcetest.jpg, conf0.25, imgsz640, device0 ) # 可视化结果 results[0].show() # 保存结果 results[0].save(result.jpg)5.2 批量处理图像import glob image_files glob.glob(/path/to/images/*.jpg) for img in image_files: results model.predict(sourceimg, saveTrue)6. 总结与进阶建议6.1 训练流程回顾准备自定义数据集并创建YAML配置文件选择合适的模型大小(yolov12n/s/m/l/x)配置训练参数并开始训练监控训练过程并解决问题验证模型性能并导出为生产格式6.2 进阶优化建议数据增强策略根据数据集特点调整mixup和copy_paste参数模型剪枝训练后使用通道剪枝减小模型大小量化部署导出时使用INT8量化进一步加速推理迁移学习在大数据集上预训练再在小数据集上微调6.3 性能对比参考模型参数量(M)自定义数据集mAP0.5推理速度(T4)YOLOv12-N2.50.681.6msYOLOv12-S9.10.732.4msYOLOv12-M15.70.763.8ms获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。