Skip to content

Ultralytics YOLO的MLflow集成

MLflow生态系统

介绍

实验日志记录是机器学习工作流程中的一个关键方面,它能够跟踪各种指标、参数和工件。它有助于提高模型的可重复性、调试问题和改进模型性能。Ultralytics YOLO以其实时目标检测能力而闻名,现在提供了与MLflow的集成,MLflow是一个用于完整机器学习生命周期管理的开源平台。

本文档页面是设置和利用Ultralytics YOLO项目的MLflow日志记录功能的综合指南。

什么是MLflow?

MLflow是由Databricks开发的开源平台,用于管理端到端的机器学习生命周期。它包括用于跟踪实验、将代码打包为可重复运行的工具,以及共享和部署模型。MLflow旨在与任何机器学习库和编程语言一起工作。

功能

  • 指标日志记录:在每个epoch结束和训练结束时记录指标。
  • 参数日志记录:记录训练中使用的所有参数。
  • 工件日志记录:在训练结束时记录模型工件,包括权重和配置文件。

设置和前提条件

确保已安装MLflow。如果没有,请使用pip安装:

pip install mlflow

确保在Ultralytics设置中启用了MLflow日志记录。通常,这是由设置mflow键控制的。有关更多信息,请参阅设置页面。

更新Ultralytics MLflow设置

在Python环境中,调用settings对象上的update方法来更改您的设置:

from ultralytics import settings

# 更新设置
settings.update({"mlflow": True})

# 重置设置为默认值
settings.reset()

如果您更喜欢使用命令行界面,以下命令将允许您修改设置:

# 更新设置
yolo settings runs_dir='/path/to/runs'

# 重置设置为默认值
yolo settings reset

如何使用

命令

  1. 设置项目名称:您可以通过环境变量设置项目名称:

    export MLFLOW_EXPERIMENT_NAME=<your_experiment_name>
    

    或者在训练YOLO模型时使用project=<project>参数,例如yolo train project=my_project

  2. 设置运行名称:与设置项目名称类似,您可以通过环境变量设置运行名称:

    export MLFLOW_RUN=<your_run_name>
    

    或者在训练YOLO模型时使用name=<name>参数,例如yolo train project=my_project name=my_name

  3. 启动本地MLflow服务器:要开始跟踪,请使用:

    mlflow server --backend-store-uri runs/mlflow'
    

    这将默认在http://127.0.0.1:5000启动一个本地服务器,并将所有mlflow日志保存到'runs/mlflow'目录。要指定不同的URI,请设置MLFLOW_TRACKING_URI环境变量。

  4. 终止MLflow服务器实例:要停止所有正在运行的MLflow实例,请运行:

    ps aux | grep 'mlflow' | grep -v 'grep' | awk '{print $2}' | xargs kill -9
    

日志记录

日志记录由on_pretrain_routine_endon_fit_epoch_endon_train_end回调函数处理。这些函数在训练过程的相应阶段自动调用,并处理参数、指标和工件的日志记录。

示例

  1. 记录自定义指标:您可以通过在调用on_fit_epoch_end之前修改trainer.metrics字典来添加要记录的自定义指标。

  2. 查看实验:要查看您的日志,请导航到您的MLflow服务器(通常是http://127.0.0.1:5000)并选择您的实验和运行。YOLO MLflow实验

  3. 查看运行: 运行是实验中的单个模型。点击一个运行并查看运行详情,包括上传的工件和模型权重。YOLO MLflow Run

禁用 MLflow

要关闭 MLflow 日志记录:

yolo settings mlflow=False

结论

MLflow 日志记录与 Ultralytics YOLO 的集成提供了一种简化的方式来跟踪您的机器学习实验。它使您能够有效监控性能指标和管理工件,从而有助于稳健的模型开发和部署。有关更多详细信息,请访问 MLflow 官方文档

常见问题

如何使用 Ultralytics YOLO 设置 MLflow 日志记录?

要使用 Ultralytics YOLO 设置 MLflow 日志记录,首先需要确保已安装 MLflow。您可以使用 pip 安装它:

pip install mlflow

接下来,在 Ultralytics 设置中启用 MLflow 日志记录。这可以通过 mlflow 键进行控制。有关更多信息,请参阅 设置指南

更新 Ultralytics MLflow 设置

from ultralytics import settings

# 更新设置
settings.update({"mlflow": True})

# 重置设置为默认值
settings.reset()
# 更新设置
yolo settings runs_dir='/path/to/runs'

# 重置设置为默认值
yolo settings reset

最后,启动本地 MLflow 服务器进行跟踪:

mlflow server --backend-store-uri runs/mlflow

使用 MLflow 和 Ultralytics YOLO 可以记录哪些指标和参数?

Ultralytics YOLO 与 MLflow 支持在整个训练过程中记录各种指标、参数和工件:

  • 指标记录: 在每个 epoch 结束和训练完成时跟踪指标。
  • 参数记录: 记录训练过程中使用的所有参数。
  • 工件记录: 训练后保存模型工件,如权重和配置文件。

有关更多详细信息,请访问 Ultralytics YOLO 跟踪文档

启用后可以禁用 MLflow 日志记录吗?

是的,您可以通过更新设置来禁用 Ultralytics YOLO 的 MLflow 日志记录。以下是如何使用 CLI 执行此操作:

yolo settings mlflow=False

有关进一步的自定义和重置设置,请参阅 设置指南

如何启动和停止用于 Ultralytics YOLO 跟踪的 MLflow 服务器?

要启动用于 Ultralytics YOLO 实验跟踪的 MLflow 服务器,请使用以下命令:

mlflow server --backend-store-uri runs/mlflow

此命令默认在 http://127.0.0.1:5000 启动本地服务器。如果需要停止正在运行的 MLflow 服务器实例,请使用以下 bash 命令:

ps aux | grep 'mlflow' | grep -v 'grep' | awk '{print $2}' | xargs kill -9

有关更多命令选项,请参阅 命令部分

将 MLflow 与 Ultralytics YOLO 集成用于实验跟踪有哪些好处?

将 MLflow 与 Ultralytics YOLO 集成用于管理您的机器学习实验提供了几个好处:

  • 增强的实验跟踪: 轻松跟踪和比较不同的运行及其结果。
  • 改进的模型可重复性: 通过记录所有参数和工件,确保您的实验是可重复的。
  • 性能监控: 随着时间的推移可视化性能指标,以做出数据驱动的决策来改进模型。

有关设置和利用 MLflow 与 Ultralytics YOLO 的深入了解,请探索 Ultralytics YOLO 的 MLflow 集成 文档。


📅 Created 11 months ago ✏️ Updated 20 days ago

Comments