Ultralytics YOLO与MLflow集成指南

机器学习领域,跟踪实验和模型性能是至关重要的。Ultralytics YOLO,以其实时对象检测能力而闻名,现在提供了与MLflow的集成,MLflow是一个开源平台,用于完整的机器学习生命周期管理。本文档提供了一个全面的指南,介绍如何为Ultralytics YOLO项目设置和使用MLflow的日志功能。

什么是MLflow?

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

MLflow的功能

MLflow提供了以下功能:

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

设置和先决条件

确保已安装MLflow。如果尚未安装,请使用pip安装:

pip install mlflow

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

更新Ultralytics MLflow设置

在Python环境中,通过调用update方法来更改设置:

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

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

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

如何使用

要设置项目名称,可以通过环境变量设置:

export MLFLOW_EXPERIMENT_NAME=<your_experiment_name>

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

yolo train project=my_project

要设置运行名称,可以通过环境变量设置:

export MLFLOW_RUN=<your_run_name>

或者在训练YOLO模型时使用name=<name>参数,例如:

yolo train project=my_project name=my_name

要启动本地MLflow服务器以进行跟踪,请使用:

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

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

停止MLflow服务器实例

要停止所有运行的MLflow实例,请运行:

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

日志记录

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

示例

要记录自定义指标,可以在调用on_fit_epoch_end之前修改trainer.metrics字典。

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

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

禁用MLflow

要关闭MLflow日志记录:

yolo settings mlflow=False

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

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

常见问题解答

如何为Ultralytics YOLO设置MLflow日志记录? 首先,确保已安装MLflow。可以使用pip安装它:pip install mlflow。接下来,在Ultralytics设置中启用MLflow日志记录。这可以通过使用mlflow键来控制。有关更多信息,请参见设置指南。

使用MLflow与Ultralytics YOLO可以记录哪些指标和参数? Ultralytics YOLO与MLflow支持在训练过程中记录各种指标、参数和工件: 指标日志记录:在每个训练周期结束时以及训练结束时跟踪指标。 参数日志记录:记录训练过程中使用的所有参数。 工件日志记录:在训练结束后保存模型工件,如权重和配置文件。 有关更详细信息,请访问Ultralytics YOLO跟踪文档。

一旦启用,可以禁用MLflow日志记录吗? 是的,可以通过更新设置来禁用Ultralytics YOLO的MLflow日志记录。以下是如何使用CLI进行操作:yolo settings mlflow=False。有关进一步的自定义和重置设置,请参阅设置指南。

如何启动和停止Ultralytics YOLO跟踪的MLflow服务器? 要启动MLflow服务器以跟踪在Ultralytics YOLO中的实验,请使用以下命令: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。有关更多命令选项,请参考命令部分。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485