Ultralytics YOLO27:

提升 YOLO26 训练体验:使用 Comet 简化日志记录流程#

记录参数、指标、图像预测结果和模型检查点等关键训练详情对于机器学习至关重要——这能让你的项目保持透明、进展可衡量、结果可复现。



Watch: How to Use Comet for Ultralytics YOLO Model Training Logs and Metrics 🚀

Ultralytics YOLO26 可与 Comet(原名 Comet ML)无缝集成,高效捕获并优化 YOLO26 目标检测模型训练过程的每个方面。在本指南中,我们将介绍安装流程、Comet 设置、实时洞察、自定义日志记录和离线使用,确保你的 YOLO26 训练过程得到完整记录并经过精细调优,以取得出色结果。

Comet#

Comet ML experiment tracking dashboard

Comet 是一个用于跟踪、比较、解释和优化机器学习模型与实验的平台。在模型训练期间,你可以使用它记录指标、参数、媒体等内容,并通过美观的 Web 界面监控实验。Comet 帮助数据科学家更快地迭代,提升透明度和可复现性,并助力生产模型的开发。

释放 YOLO26 与 Comet 的强大能力#

将 Ultralytics YOLO26 与 Comet 结合使用,你可以获得一系列优势,包括简化实验管理、通过实时洞察快速调整、灵活且量身定制的日志记录选项,以及在互联网访问受限时离线记录实验的能力。这种集成让你能够基于数据做出决策、分析性能指标并取得卓越结果。

安装#

要安装所需的软件包,请运行:

安装
# Install YOLO26 and Comet
pip install ultralytics comet_ml

配置 Comet#

安装所需软件包后,你需要注册账号、获取 Comet API Key 并完成配置。

配置 Comet
# Set your Comet API Key
export COMET_API_KEY=YOUR_API_KEY

然后,通过 Comet 进行身份验证。Ultralytics 回调会创建实验,并使用 YOLO 的 project 训练参数作为 Comet 项目名称。

初始化 Comet 项目
import comet_ml

comet_ml.login()

如果你使用的是 Google Colab 笔记本,上面的代码会提示你输入 API key 以完成初始化。

使用方法#

在开始阅读使用说明之前,请务必查看 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 和损失等指标、超参数、模型检查点、交互式混淆矩阵以及图像边界框预测结果。

使用 Comet 可视化了解模型性能#

让我们深入了解 YOLO26 模型开始训练后你将在 Comet 仪表板上看到的内容。仪表板是所有操作的中心,通过可视化和统计数据呈现各种自动记录的信息。下面快速浏览一下:

实验面板

Comet 仪表板的实验面板部分会整理并呈现不同运行及其指标,例如分割掩码损失、类别损失、精确率和平均精度

Comet ML experiment tracking dashboard

指标

在指标部分,你还可以选择以表格格式查看指标,这些指标会显示在专用窗格中,如图所示。

Comet ML experiment tracking dashboard

交互式混淆矩阵

混淆矩阵位于 Confusion Matrix 选项卡中,提供了一种交互式评估模型分类准确率的方法。它详细列出了正确和错误的预测结果,帮助你了解模型的优势与不足。

Comet ML experiment tracking dashboard

系统指标

Comet 会记录系统指标,帮助识别训练过程中的任何瓶颈。其中包括 GPU 利用率、GPU 内存使用量、CPU 利用率和 RAM 使用量等指标。这些指标对于监控模型训练期间资源使用的效率至关重要。

Comet ML experiment tracking dashboard

自定义 Comet 日志记录#

Comet 支持通过设置环境变量来自定义日志记录行为。这些配置让你可以根据具体需求和偏好调整 Comet。Ultralytics 回调会读取以下环境变量(请在训练开始前设置):

环境变量默认值描述
COMET_START_ONLINE1以在线(1)或离线(0)模式运行实验。
COMET_PROJECT_NAMEargs.projectComet 工作区项目。未设置时回退到 YOLO 的 project 训练参数。
COMET_MODEL_NAMEUltralytics为所记录模型工件注册的名称。
COMET_MAX_IMAGE_PREDICTIONS100每次运行要记录的验证图像预测总数。
COMET_EVAL_BATCH_LOGGING_INTERVAL1每第 N 个验证批次记录一次图像预测。
COMET_EVAL_LOG_IMAGE_PREDICTIONStrue开启(true)或关闭(false)图像预测记录。
COMET_EVAL_LOG_CONFUSION_MATRIXfalse在每个验证周期记录混淆矩阵。训练结束时始终会记录最终矩阵。
COMET_MAX_CONFIDENCE_SCORE100.0记录前应用于检测置信度分数的乘数(Comet 的 UI 需要百分比刻度)。
COMET_MODE (已弃用)onlineCOMET_START_ONLINE 的旧版别名("online"1"offline"0)。会发出弃用警告。

对于布尔开关(COMET_EVAL_LOG_IMAGE_PREDICTIONSCOMET_EVAL_LOG_CONFUSION_MATRIX),值 1trueyesonyt 会被解析为 True(不区分大小写)。任何其他值都会被解析为 False

记录图像预测#

你可以控制 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"

批次记录间隔#

Comet 允许你指定记录图像预测批次的频率。COMET_EVAL_BATCH_LOGGING_INTERVAL 环境变量控制此频率。默认设置为 1,即记录每个验证批次中的预测结果。你可以调整此值,以不同间隔记录预测结果。例如,将其设置为 4 后,每四个批次记录一次预测结果。

import os

os.environ["COMET_EVAL_BATCH_LOGGING_INTERVAL"] = "4"

禁用混淆矩阵记录#

在某些情况下,你可能不希望在每个周期之后记录验证集的混淆矩阵。你可以将 COMET_EVAL_LOG_CONFUSION_MATRIX 环境变量设置为 "false" 来禁用此功能。训练完成后,混淆矩阵只会记录一次。

import os

os.environ["COMET_EVAL_LOG_CONFUSION_MATRIX"] = "false"

在线和离线模式#

默认情况下,Comet 以在线模式运行,并将实验数据流式传输到 Comet 服务器。如果你需要在无互联网访问的情况下进行训练,请在训练开始前设置 COMET_START_ONLINE=0。实验数据会保存在本地,之后可以使用 comet upload CLI 上传。

import os

os.environ["COMET_START_ONLINE"] = "0"  # 1 (default) = online, 0 = offline
`COMET_MODE` 已弃用

早期版本使用 COMET_MODE="offline" 来实现此目的。为保持向后兼容性,该变量仍会生效,但会发出弃用警告。今后请使用 COMET_START_ONLINE

项目名称#

默认情况下,Comet 回调会将 YOLO 的 project 训练参数传递给 Comet(如果未设置该参数,则使用 None,此时 Comet 会使用你的工作区默认项目)。使用 COMET_PROJECT_NAME 可覆盖此设置,无论 YOLO 训练参数如何,都将所有实验发送到指定的 Comet 工作区项目:

import os

os.environ["COMET_PROJECT_NAME"] = "my-yolo26-experiments"

模型工件名称#

COMET_MODEL_NAME 设置 Comet 为所记录模型工件注册的名称(默认为 Ultralytics)。在共享工作区中使用它来区分模型变体:

import os

os.environ["COMET_MODEL_NAME"] = "yolo26n-coco128"

置信度分数缩放#

检测置信度分数以 [0, 1] 范围输出,但 Comet UI 默认以百分比刻度显示这些分数。回调会在记录前将每个分数乘以 COMET_MAX_CONFIDENCE_SCORE(默认为 100.0)。如果你更偏好原始概率或其他刻度,可以进行调整:

import os

os.environ["COMET_MAX_CONFIDENCE_SCORE"] = "1.0"  # log raw [0, 1] scores

总结#

本指南介绍了如何将 Comet 与 Ultralytics 的 YOLO26 集成。从安装到自定义设置,你已经学会了如何简化实验管理、获取实时洞察,并根据项目需求调整日志记录。

探索 Comet 官方 YOLOv8 集成文档,该文档同样适用于 YOLO26 项目。

此外,如果你希望深入了解 YOLO26 的实际应用,尤其是图像分割任务,那么这份关于使用 Comet 微调 YOLO26的详细指南将提供有价值的洞察和分步说明,帮助提升模型性能。

另外,要探索 Ultralytics 的其他精彩集成,请查看集成指南页面,其中提供了丰富的资源和信息。

常见问题#

  • 要将 Comet 与 Ultralytics YOLO26 集成,请按照以下步骤操作:

    1. 安装所需软件包

      pip install ultralytics comet_ml
    2. 设置你的 Comet API Key

      export COMET_API_KEY=YOUR_API_KEY
    3. 在你的 Python 代码中通过 Comet 进行身份验证

      import comet_ml
      
      comet_ml.login()
    4. 训练 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 配置部分

  • 将 Ultralytics YOLO26 与 Comet 集成后,你可以:

    • 监控实时洞察:即时获取训练结果反馈,从而快速进行调整。
    • 记录丰富的指标:自动捕获 mAP、损失、超参数和模型检查点等关键指标。
    • 离线跟踪实验:在无法访问互联网时,在本地记录训练运行。
    • 比较不同的训练运行:使用交互式 Comet 仪表板分析和比较多个实验。

    利用这些功能,你可以优化机器学习工作流,以获得更好的性能和可复现性。有关更多信息,请访问 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 日志记录部分。

  • YOLO26 模型开始训练后,你可以在 Comet 仪表板上查看各种指标和可视化结果。主要功能包括:

    • 实验面板:查看不同运行及其指标,包括分割掩码损失、类别损失和平均精度
    • 指标:以表格格式查看指标,以便进行详细分析。
    • 交互式混淆矩阵:使用交互式混淆矩阵评估分类准确率。
    • 系统指标:监控 GPU 和 CPU 利用率、内存使用量及其他系统指标。

    有关这些功能的详细概述,请访问使用 Comet 可视化了解模型性能部分。

  • 可以。在训练开始前设置 COMET_START_ONLINE=0,即可在本地记录:

    import os
    
    os.environ["COMET_START_ONLINE"] = "0"

    实验数据会保存在磁盘上,连接恢复后可以使用 comet upload CLI 上传到 Comet。之前的 COMET_MODE="offline" 变量仍然有效,但会发出弃用警告。有关更多详情,请参阅在线和离线模式部分。

评论