Ultralytics YOLO27:
Get Started

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

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



观看: 如何使用 Comet 记录 Ultralytics YOLO 模型训练日志和指标 🚀

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 密钥并进行配置。

配置 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 密钥以完成初始化。

用法#

开始阅读使用说明前,请务必了解 Ultralytics 提供的 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 会在你的 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_PREDICTIONS 和 COMET_EVAL_LOG_CONFUSION_MATRIX),值 1、true、yes、on、y 和 t 会被解析为 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(默认)= 在线,0 = 离线
`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"  # 记录原始 [0, 1] 分数

总结#

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

请参阅 Comet 官方 YOLOv8 集成文档,该文档同样适用于 YOLO26 项目。

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

此外,如需探索 Ultralytics 的其他实用集成方案,请查看集成指南页面,其中提供了丰富的资源和信息。

常见问题#

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

    1. 安装所需的软件包:

      pip install ultralytics comet_ml
    2. 设置 Comet API 密钥:

      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" 变量仍然有效,但会发出弃用警告。详情请参阅在线和离线模式部分。

评论