Link to this section提升 YOLO26 训练体验:使用 Comet 简化你的日志记录流程#
记录参数、指标、图像预测和模型检查点等关键训练细节在 机器学习 中至关重要——它能让你的项目保持透明,让进度可量化,并确保结果可重复。
Watch: How to Use Comet for Ultralytics YOLO Model Training Logs and Metrics 🚀
Ultralytics YOLO26 可与 Comet(原 Comet ML)无缝集成,高效捕获并优化 YOLO26 目标检测 模型训练过程的方方面面。在本指南中,我们将介绍安装流程、Comet 设置、实时洞察、自定义日志记录以及离线使用方法,确保你的 YOLO26 训练过程得到全面记录并经过微调,以获得卓越成果。
Link to this sectionComet#
Comet 是一个用于跟踪、比较、解释和优化机器学习模型与实验的平台。它允许你在模型训练期间记录指标、参数、媒体等内容,并通过美观的网页界面监控你的实验。Comet 能够帮助数据科学家更快速地进行迭代,提高透明度和可重复性,并助力生产模型的开发。
Link to this section发挥 YOLO26 与 Comet 的强大威力#
通过将 Ultralytics YOLO26 与 Comet 结合,你将解锁一系列优势。其中包括简化的实验管理、用于快速调整的实时洞察、灵活且定制化的日志记录选项,以及在互联网受限时离线记录实验的能力。这种集成使你能够做出数据驱动的决策,分析性能指标,并获得出色的结果。
Link to this section安装#
要安装所需的软件包,请运行:
# Install the required packages for YOLO26 and Comet
pip install ultralytics comet_ml torch torchvisionLink to this section配置 Comet#
在安装所需的包之后,你需要注册账户,获取 Comet API Key,并进行配置。
# Set your Comet API Key
export COMET_API_KEY=YOUR_API_KEY然后,你可以初始化你的 Comet 项目。Comet 将自动检测 API key 并继续完成设置。
import comet_ml
comet_ml.login(project_name="comet-example-yolo26-coco128")如果你正在使用 Google Colab 笔记本,上述代码将提示你输入 API key 进行初始化。
Link to this section用法#
在深入了解使用说明之前,请务必查看 Ultralytics 提供的各种 YOLO26 模型。这将帮助你为项目需求选择最合适的模型。
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n.pt")
# Train the model
results = model.train(
data="coco8.yaml",
project="comet-example-yolo26-coco128",
batch=32,
save_period=1,
save_json=True,
epochs=3,
)运行训练代码后,Comet 会在你的 Comet 工作区中创建一个实验以自动跟踪运行过程。随后你将获得一个链接,用于查看 YOLO26 模型训练 过程的详细日志。
Comet 会在无需额外配置的情况下自动记录以下数据:诸如 mAP 和 loss 之类的指标、超参数、模型检查点、交互式混淆矩阵以及图像 边界框 预测。
Link to this section通过 Comet 可视化了解你的模型性能#
让我们深入了解一旦你的 YOLO26 模型开始训练,你将在 Comet 仪表板上看到什么。仪表板是所有操作的核心,通过视觉图表和统计数据呈现一系列自动记录的信息。这里是一个快速浏览:
实验面板
Comet 仪表板的实验面板部分组织并呈现了不同的运行过程及其指标,例如分割掩码 loss、类别 loss、精确度以及 平均精度均值。
Metrics(指标)
在指标部分,你还可以选择以表格形式查看指标,该形式显示在如图所示的专用窗格中。
交互式 混淆矩阵
可以在“混淆矩阵”选项卡中找到的混淆矩阵,提供了一种评估模型分类 准确率 的交互式方式。它详细说明了正确和错误的预测,让你能够理解模型的长处和短板。
系统指标
Comet 会记录系统指标,以帮助识别训练过程中的任何瓶颈。其中包括 GPU 利用率、GPU 内存使用量、CPU 利用率和 RAM 使用量等指标。这些对于在模型训练期间监控资源使用效率至关重要。
Link to this section自定义 Comet 日志记录#
Comet 通过设置环境变量提供了自定义其日志记录行为的灵活性。这些配置允许你根据自己的具体需求和偏好来定制 Comet。Ultralytics 回调函数会读取以下环境变量(请在训练开始前设置它们):
| 环境变量 | 默认值 | 描述 |
|---|---|---|
COMET_START_ONLINE | 1 | 以在线 (1) 或离线 (0) 模式运行实验。 |
COMET_PROJECT_NAME | args.project | Comet 工作区项目。若未设置,将回退至 YOLO project 训练参数。 |
COMET_MODEL_NAME | Ultralytics | 为记录的模型产物注册的名称。 |
COMET_MAX_IMAGE_PREDICTIONS | 100 | 每次运行记录的验证图像预测总数。 |
COMET_EVAL_BATCH_LOGGING_INTERVAL | 1 | 每隔 N 个验证批次记录一次图像预测。 |
COMET_EVAL_LOG_IMAGE_PREDICTIONS | true | 开启 (true) 或关闭 (false) 图像预测日志记录。 |
COMET_EVAL_LOG_CONFUSION_MATRIX | false | 在每个验证 epoch 记录混淆矩阵。最终矩阵总是在训练结束时记录。 |
COMET_MAX_CONFIDENCE_SCORE | 100.0 | 记录前应用于检测置信度得分的乘数(Comet 的 UI 期望百分比刻度)。 |
COMET_MODE (已弃用) | online | COMET_START_ONLINE 的旧版别名("online" ↔ 1,"offline" ↔ 0)。会触发弃用警告。 |
Link to this section记录图像预测#
你可以控制 Comet 在实验期间记录的图像预测数量。默认情况下,Comet 会从验证集中记录 100 张图像预测。不过,你可以更改此数值以更好地满足你的需求。例如,若要记录 200 张图像预测,请使用以下代码:
import os
os.environ["COMET_MAX_IMAGE_PREDICTIONS"] = "200"若要完全禁用图像预测日志记录(例如为了减少在慢速连接上的上传量),请将 COMET_EVAL_LOG_IMAGE_PREDICTIONS 设置为 "false":
import os
os.environ["COMET_EVAL_LOG_IMAGE_PREDICTIONS"] = "false"Link to this section批次日志记录间隔#
Comet 允许你指定记录图像预测批次的频率。环境变量 COMET_EVAL_BATCH_LOGGING_INTERVAL 控制此频率。默认设置为 1,即记录每个验证批次的预测。你可以调整此值以在不同的间隔记录预测。例如,将其设置为 4 将记录每第四个批次的预测。
import os
os.environ["COMET_EVAL_BATCH_LOGGING_INTERVAL"] = "4"Link to this section禁用混淆矩阵日志记录#
在某些情况下,你可能不希望在每个 epoch 之后记录验证集的混淆矩阵。你可以通过将环境变量 COMET_EVAL_LOG_CONFUSION_MATRIX 设置为 "false" 来禁用此功能。混淆矩阵将仅在训练完成后记录一次。
import os
os.environ["COMET_EVAL_LOG_CONFUSION_MATRIX"] = "false"Link to this section在线和离线模式#
默认情况下,Comet 在线运行并将实验数据流式传输到 Comet 服务器。如果你需要在没有互联网连接的情况下进行训练,请在训练开始前设置 COMET_START_ONLINE=0。实验数据将保存在本地,稍后可以使用 comet upload CLI 进行上传。
import os
os.environ["COMET_START_ONLINE"] = "0" # 1 (default) = online, 0 = offline早期版本为此目的使用了 COMET_MODE="offline"。该变量为保持向后兼容性仍然有效,但会触发弃用警告。请在未来使用 COMET_START_ONLINE。
Link to this section项目名称#
默认情况下,Comet 回调函数会将 YOLO project 训练参数传递给 Comet(如果参数未设置则为 None,此时 Comet 使用你的工作区默认值)。使用 COMET_PROJECT_NAME 覆盖此设置,无论 YOLO 训练参数如何,都将所有实验发送到特定的 Comet 工作区项目:
import os
os.environ["COMET_PROJECT_NAME"] = "my-yolo26-experiments"Link to this section模型产物名称#
COMET_MODEL_NAME 设置 Comet 为记录的模型产物注册的名称(默认为 Ultralytics)。使用它可以在共享工作区中区分模型变体:
import os
os.environ["COMET_MODEL_NAME"] = "yolo26n-coco128"Link to this section置信度得分缩放#
检测置信度得分以 [0, 1] 范围输出,但 Comet UI 默认以百分比刻度显示。回调函数会在记录前将每个得分乘以 COMET_MAX_CONFIDENCE_SCORE(默认 100.0)。如果你更倾向于原始概率或不同的刻度,请调整此值:
import os
os.environ["COMET_MAX_CONFIDENCE_SCORE"] = "1.0" # log raw [0, 1] scoresLink to this section总结#
本指南带你完成了将 Comet 与 Ultralytics 的 YOLO26 集成的过程。从安装到自定义,你已经学会了如何精简实验管理、获取实时洞察,并根据你的项目需求调整日志记录。
探索 Comet 的官方 YOLOv8 集成文档,该文档同样适用于 YOLO26 项目。
此外,如果你希望深入了解 YOLO26 的实际应用,特别是针对 图像分割 任务,这篇关于 使用 Comet 微调 YOLO26 的详细指南提供了宝贵的见解和分步说明,以提升你的模型性能。
此外,要探索其他与 Ultralytics 的激动人心的集成,请查看 集成指南页面,其中提供了丰富的资源和信息。
Link to this section常见问题解答#
Link to this section如何将 Comet 集成到 Ultralytics YOLO26 中进行训练?#
要将 Comet 与 Ultralytics YOLO26 集成,请遵循以下步骤:
-
安装所需的包:
pip install ultralytics comet_ml torch torchvision -
设置你的 Comet API Key:
export COMET_API_KEY=YOUR_API_KEY -
在你的 Python 代码中初始化 Comet 项目:
import comet_ml comet_ml.login(project_name="comet-example-yolo26-coco128") -
训练你的 YOLO26 模型并记录指标:
from ultralytics import YOLO model = YOLO("yolo26n.pt") results = model.train( data="coco8.yaml", project="comet-example-yolo26-coco128", batch=32, save_period=1, save_json=True, epochs=3, )
有关更详细的说明,请参考 Comet 配置部分。
Link to this section在 YOLO26 中使用 Comet 有什么好处?#
通过将 Ultralytics YOLO26 与 Comet 集成,你可以:
- 监控实时洞察:获取训练结果的即时反馈,从而进行快速调整。
- 记录详尽指标:自动捕获 mAP、loss、超参数和模型检查点等基本指标。
- 离线跟踪实验:在无法访问互联网时在本地记录你的训练过程。
- 比较不同训练运行:使用交互式 Comet 仪表板分析和比较多个实验。
通过利用这些功能,你可以优化机器学习工作流程,以获得更好的性能和可重复性。有关更多信息,请访问 Comet 集成指南。
Link to this section如何在 YOLO26 训练期间自定义 Comet 的日志记录行为?#
Comet 允许使用环境变量对日志记录行为进行广泛的自定义:
-
更改记录的图像预测数量:
import os os.environ["COMET_MAX_IMAGE_PREDICTIONS"] = "200" -
调整批次记录间隔:
import os os.environ["COMET_EVAL_BATCH_LOGGING_INTERVAL"] = "4" -
禁用混淆矩阵日志记录:
import os os.environ["COMET_EVAL_LOG_CONFUSION_MATRIX"] = "false" -
设置 Comet 项目名称:
import os os.environ["COMET_PROJECT_NAME"] = "my-yolo26-experiments" -
设置记录的模型产物名称:
import os os.environ["COMET_MODEL_NAME"] = "yolo26n-coco128"
请参阅 自定义 Comet 日志记录 部分以获取完整列表,包括图像预测开关、置信度得分缩放以及在线/离线模式。
Link to this section如何在 Comet 上查看 YOLO26 训练的详细指标和可视化效果?#
一旦你的 YOLO26 模型开始训练,你就可以在 Comet 仪表板上访问大量的指标和可视化效果。主要功能包括:
- 实验面板:查看不同的运行及其指标,包括分割掩码 loss、类别 loss 和平均 精确度。
- 指标:以表格形式查看指标以便进行详细分析。
- 交互式混淆矩阵:使用交互式混淆矩阵评估分类准确率。
- 系统指标:监控 GPU 和 CPU 利用率、内存使用量以及其他系统指标。
有关这些功能的详细概述,请访问 通过 Comet 可视化了解你的模型性能 部分。
Link to this section我可以在训练 YOLO26 模型时使用 Comet 进行离线记录吗?#
可以。在训练开始前设置 COMET_START_ONLINE=0 以在本地记录:
import os
os.environ["COMET_START_ONLINE"] = "0"实验数据保存在磁盘上,稍后在有网络连接时,可以使用 comet upload CLI 将其上传到 Comet。旧版 COMET_MODE="offline" 变量仍然有效,但会触发弃用警告。有关更多详细信息,请参阅 在线和离线模式 部分。