YOLOv9结果保存路径:runs/detect输出目录说明
1. 镜像环境说明
- 核心框架: pytorch==1.10.0
- CUDA版本: 12.1
- Python版本: 3.8.5
- 主要依赖: torchvision==0.11.0,torchaudio==0.10.0,cudatoolkit=11.3, numpy, opencv-python, pandas, matplotlib, tqdm, seaborn等。
- 代码位置:
/root/yolov9
该镜像为YOLOv9官方训练与推理一体化环境,基于原始GitHub仓库构建,预配置了完整的深度学习工具链。用户无需手动安装PyTorch、CUDA驱动或OpenCV等复杂依赖,可直接进入模型训练、推理和评估流程。所有代码位于/root/yolov9目录下,结构清晰,便于快速调用。
2. 快速上手
2.1 激活环境
启动容器后,默认处于Conda的base环境,需先激活专用于YOLOv9的虚拟环境:
conda activate yolov9此环境已集成所需版本的PyTorch与CUDA支持,确保模型运行时GPU可用性。
2.2 模型推理 (Inference)
进入YOLOv9主目录以执行检测任务:
cd /root/yolov9使用以下命令进行图像目标检测示例:
python detect_dual.py --source './data/images/horses.jpg' --img 640 --device 0 --weights './yolov9-s.pt' --name yolov9_s_640_detect参数说明:
--source:输入源路径,支持图片、视频或摄像头设备。--img:推理时输入图像尺寸(默认640×640)。--device:指定GPU设备编号(0表示第一块GPU)。--weights:加载的模型权重文件路径。--name:自定义结果保存子目录名称。
输出路径解析
推理完成后,检测结果将自动保存在如下路径中:
/root/yolov9/runs/detect/yolov9_s_640_detect/该路径由三部分构成:
runs/detect/:YOLO系列标准输出根目录;yolov9_s_640_detect:由--name参数指定的实验名称;- 内部包含标注框绘制后的图像(如
horses.jpg)、可视化统计图及标签文件(若启用保存标签)。
重要提示:每次运行
detect_dual.py时,若--name相同,则结果会追加至同名目录;若不存在则新建。建议为不同实验设置唯一名称以便管理。
2.3 模型训练 (Training)
单卡训练命令示例如下:
python train_dual.py --workers 8 --device 0 --batch 64 --data data.yaml --img 640 --cfg models/detect/yolov9-s.yaml --weights '' --name yolov9-s --hyp hyp.scratch-high.yaml --min-items 0 --epochs 20 --close-mosaic 15关键参数解释:
--data:数据集配置文件,需按YOLO格式组织并更新其中的路径字段。--cfg:网络结构定义文件,对应不同规模的YOLOv9变体(如s/m/t等)。--weights:初始化权重路径,空字符串表示从零开始训练。--name:训练任务命名,决定日志与权重保存子目录名。--epochs:总训练轮数。--close-mosaic:在最后N个epoch关闭Mosaic增强策略,提升收敛稳定性。
训练输出路径
训练过程中生成的所有产物均存储于:
/root/yolov9/runs/train/yolov9-s/其中包括:
weights/:保存最佳(best.pt)和最终(last.pt)模型权重;results.png:各指标(mAP、precision、recall等)随训练过程的变化曲线;labels/:类别分布直方图;train_batch*.jpg:带增强效果的训练样本可视化;opt.yaml:本次训练所用超参快照。
3. 已包含权重文件
镜像内已预下载轻量级模型权重yolov9-s.pt,存放于主目录:
/root/yolov9/yolov9-s.pt该权重适用于快速开展推理测试或作为微调起点。对于其他变体(如yolov9-m.pt,yolov9-c.pt),可通过官方链接自行下载并放入相同目录。
推荐做法:将自定义训练所得权重定期备份至外部挂载卷,防止容器销毁导致数据丢失。
4. 常见问题
数据集准备
请确保你的数据集遵循标准YOLO格式:
- 图像文件存放在
images/目录; - 对应标签(
.txt)存放在labels/目录; - 每个标签文件每行格式为:
class_id center_x center_y width height(归一化坐标); data.yaml中正确填写train,val,nc(类别数)和names(类别名列表)。
示例data.yaml片段:
train: /path/to/train/images val: /path/to/val/images nc: 80 names: ['person', 'bicycle', 'car', ...]环境激活失败
若执行conda activate yolov9报错,可能原因包括:
- Conda未初始化:运行
source ~/.bashrc或重启shell; - 环境未注册:检查
/opt/conda/envs/下是否存在yolov9文件夹; - 权限不足:使用
sudo权限或重建容器时赋予足够访问权限。
结果目录被覆盖?
当多次使用相同--name参数运行detect_dual.py或train_dual.py时,新结果将写入已有目录。虽然不会删除旧文件,但同名输出文件会被覆盖(如horses.jpg)。
规避方案:
- 使用时间戳命名:
--name yolov9_s_test_$(date +%m%d_%H%M) - 手动创建独立子目录,并修改输出逻辑(需调整脚本)
5. 参考资料
- 官方仓库: WongKinYiu/yolov9
- 文档说明: 详细用法请参考官方库中的 README.md 文件,涵盖多卡训练、ONNX导出、TensorRT部署等内容。
- 推理脚本说明:
detect_dual.py是YOLOv9特有的双分支检测入口,支持传统CNN与可编程梯度信息融合模式。
6. 引用
@article{wang2024yolov9, title={{YOLOv9}: Learning What You Want to Learn Using Programmable Gradient Information}, author={Wang, Chien-Yao and Liao, Hong-Yuan Mark}, booktitle={arXiv preprint arXiv:2402.13616}, year={2024} }@article{chang2023yolor, title={{YOLOR}-Based Multi-Task Learning}, author={Chang, Hung-Shuo and Wang, Chien-Yao and Wang, Richard Robert and Chou, Gene and Liao, Hong-Yuan Mark}, journal={arXiv preprint arXiv:2309.16921}, year={2023} }获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。