了解Ultralytics 如何与Comet 合作进行Ultralytics YOLOv5 模型优化:实时跟踪、简化协作和增强可重复性。

了解Ultralytics 如何与Comet 合作进行Ultralytics YOLOv5 模型优化:实时跟踪、简化协作和增强可重复性。

在Ultralytics ,我们经常与其他初创公司合作,帮助我们为研发YOLOv5 等优秀的开源工具提供资金支持,使这些工具能够免费提供给所有人使用。本文可能包含这些合作伙伴的关联链接。
我们最新的合作伙伴 CometComet 提供各种工具,帮助数据科学家、工程师和团队领导者加速和优化机器学习和深度学习模型。
Comet 是跟踪模型、数据集和指标的强大工具。它甚至能记录系统和环境变量,以确保每次运行的可重复性和顺利调试。它就像一个虚拟助手,能神奇地知道要记录什么。实时跟踪和可视化模型指标,保存超参数、数据集和模型检查点,利用Comet 自定义面板可视化模型预测!
此外,Comet 还能确保您永远不会丢失工作track ,并使各种规模的团队都能轻松共享成果和开展协作!
YOLOv5是您计算机视觉之旅的绝佳起点。要提高模型的性能并使其为生产做好准备,您需要将结果记录在实验跟踪工具中,如 Comet.
Comet 和YOLOv5 集成提供3 个主要功能:
本指南将介绍如何将YOLOv5 与Comet 结合使用。
准备好实时track 您的实验了吗?让我们开始吧
Pip installcomet
用以下两种方法配置Comet YOLOv5.
您可以通过环境变量设置凭据,或者在工作目录中创建一个comet.config 文件并在其中设置凭据。
exportCOMET COMET# 默认为yolov5
[comet] api_key= project_name=<Your Comet API Key># This will default to 'yolov5'
# Train YOLOv5s onCOCO128 for 5 epochspython train.py --img 640 --batch 16 --epochs 5 --data coco128yaml --weights yolov5s.pt
就这样!
Comet 会自动记录超参数、命令行参数、训练和验证指标。您可以在Comet 用户界面上对运行情况进行可视化分析。

查看此处已完成运行的示例。
或者,更好的是,在这个 Colab Notebook中亲自尝试一下。
默认情况下,Comet 会记录以下项目:
Comet 可通过传给训练脚本的命令行标志或环境变量进行配置,以记录更多数据。
exportCOMET# 设置以 "联机 "还是 "脱机 "模式运行Comet 。默认为 onlineexportCOMET#设置保存模型的名称。默认为 yolov5exportCOMET# 设置为禁止记录Comet Confusion Matrix。默认为 trueexportCOMET# 控制向Comet 记录的图像预测总数。默认为 100.exportCOMET# 设置为在训练结束时记录每个检测到的类别的评估指标。默认为 falseexportCOMET# 如果要从不同的检查点继续训练,请设置此项。默认为'last.pt'exportCOMET# 如果要在批次级别记录训练指标,请设置此项。默认为 false.exportCOMET# 将此项设为 false 可禁用模型预测日志记录功能
向Comet 记录模型的功能默认为禁用。要启用它,可向训练脚本传递 save-period 参数。
python train.py \
Comet 640 \
--batch 16 \
--epochs 5 \
--data coco128yaml \
--weights yolov5s.pt \
--save-period 1
默认情况下,模型预测(图像、地面实况标签和边界框)会被记录到Comet 中。您可以通过bbox 命令行参数来控制记录预测和相关图像的频率。可以使用Comet 的 "对象检测自定义面板 "对预测结果进行可视化。这个频率相当于每个纪元每 N 批数据。在下面的示例中,我们每隔一个纪元记录第二批数据。
注意:YOLOv5 验证数据加载器的默认批量大小为 32,因此您必须相应设置记录频率。
这里是一个使用Panel的项目示例。
python train.py \--img 640 \--batch 16 \--epochs 5 \--data coco128yaml yolov5s.ptbbox 2
记录来自YOLOv5 的预测时,Comet 将记录与每组预测相关的图像。默认情况下,最多记录 100 幅验证图像。您可以使用COMET 环境变量来增减这个数量。
envCOMET train.py \--img 640 \--batch 16 \--epochs 5 \--data coco128yaml yolov5s.ptbbox 1
使用COMET 环境变量记录每个类别的mAP、精确度、召回率和 f1。
envCOMET python train.py \--img 640 \--batch 16 \--epochs 5 \--data coco128yaml yolov5s.pt
如果你想使用Comet Artifacts 来存储数据,可以使用 upload_dataset 标志来实现。
数据集按照YOLOv5 文档中描述的方式组织。数据集配置yaml 文件必须遵循与 coco128yaml 文件相同的格式。
python train.py \--img 640 \---batch 16 \--epochs 5 \--data coco128yaml yolov5s.pt \--upload_dataset
您可以在Comet 工作区的 "工件 "选项卡中找到上传的数据集。

您可以直接在Comet UI 中预览数据。

工件会进行版本控制,还支持添加数据集的元数据。Comet 会自动记录数据集yaml 文件中的元数据。

如果要使用Comet Artifacts 中的数据集,请在数据集yaml 文件中设置路径变量,指向以下 Artifact 资源 URL。
# artifactyaml 文件的内容 路径:comet:///:"
然后,通过以下方式将此文件传递给您的训练脚本:
python train.py \--img 640 \---batch 16 \--epochs 5 \--data artifactyaml \--weights yolov5s.pt
人工制品还可以让你track 数据在实验工作流程中的流向。在这里,您可以看到一张图表,显示使用了您上传的数据集的所有实验。

如果您的训练运行因任何原因中断,例如互联网连接中断,您可以使用恢复标志和Comet 运行路径恢复运行。
运行路径的格式如下comet:////。
这将把运行恢复到中断前的状态,包括从检查点恢复模型、恢复所有超参数和训练参数,以及下载Comet 数据集工件(如果在原始运行中使用过)。恢复后的运行将继续记录Comet UI 中的现有实验。
python train.py\--resumecomet://"
YOLOv5 还与Comet 的优化器集成,可在Comet UI 中轻松实现超参数扫描的可视化。
要配置Comet 优化器,必须创建一个包含扫频信息的 JSON 文件。
已提供示例文件,位于:
comet.jsonpython comet.pycomet"comet.json"
hpo.py 脚本接受与 train.py 相同的参数。如果您希望将其他参数传递给您的 sweep,只需在脚本后添加它们即可。
python comet.pycomet"comet.json" \--save-period 1bbox 1
comet optimizer -jcomet.pycomet.json"
Comet 提供了许多可视化扫查结果的方法。点击这里查看一个已完成扫描的项目:

开始使用我们与Comet的集成来管理、可视化和优化您的YOLOv5 模型--从培训运行到生产监控。
当然,还可以加入Ultralytics 社区,在这里您可以就YOLOv5 培训、验证和部署提出问题和分享技巧。