MLflow 集成用于Ultralytics YOLO
导言
实验日志是机器学习工作流的一个重要方面,它可以跟踪各种指标、参数和工件。它有助于增强模型的可重复性、调试问题并提高模型性能。 UltralyticsYOLO以实时对象检测功能著称的MLFlow,现在提供了与MLflow 的集成,MLflow 是一个用于完整机器学习生命周期管理的开源平台。
本文档页面全面介绍了如何为Ultralytics YOLO 项目设置和使用 MLflow 日志功能。
什么是 MLflow?
MLflow是Databricks开发的一个开源平台,用于管理端到端的机器学习生命周期。它包括用于跟踪实验、将代码打包成可重现运行以及共享和部署模型的工具。MLflow 可与任何机器学习库和编程语言配合使用。
特点
- 指标记录:在每个历时结束和训练结束时记录指标。
- 参数记录:记录训练中使用的所有参数。
- 工件日志:在训练结束时记录模型工件,包括权重和配置文件。
设置和先决条件
确保已安装 MLflow。如果没有,请使用 pip 安装:
确保在Ultralytics 设置中启用了 MLflow 日志。通常由以下设置控制 mflow
键。参见 设置 页面获取更多信息。
更新Ultralytics MLflow 设置
在Python 环境中,调用 update
上的 settings
对象来更改设置:
如何使用
命令
-
设置项目名称:可以通过环境变量设置项目名称:
或使用 project=<project>
在训练YOLO 模型时的参数,即 yolo train project=my_project
.
-
设置运行名称:与设置项目名称类似,可以通过环境变量设置运行名称:
或使用 name=<name>
在训练YOLO 模型时的参数,即 yolo train project=my_project name=my_name
.
-
启动本地 MLflow 服务器:要启动跟踪,请使用
默认情况下,这将在 http://127.0.0.1:5000 启动本地服务器,并将所有 mlflow 日志保存到 "runs/mlflow "目录。要指定不同的 URI,请将 MLFLOW_TRACKING_URI
环境变量。
-
关闭 MLflow 服务器实例:要停止所有正在运行的 MLflow 实例,请运行
记录
日志记录由 on_pretrain_routine_end
, on_fit_epoch_end
和 on_train_end
回调函数。这些函数会在训练过程的各个阶段自动调用,并处理参数、指标和工件的日志记录。
实例
-
记录自定义指标:您可以通过修改
trainer.metrics
词典on_fit_epoch_end
被称为 -
观看实验:要查看日志,请导航至 MLflow 服务器(通常为 http://127.0.0.1:5000),然后选择实验并运行。
-
查看运行:运行是实验中的单个模型。点击运行可查看运行详情,包括上传的工件和模型权重。
禁用 MLflow
要关闭 MLflow 日志记录:
结论
与Ultralytics YOLO 集成的 MLflow 日志提供了一种跟踪机器学习实验的简化方式。它使您能够有效地监控性能指标和管理工件,从而帮助进行稳健的模型开发和部署。更多详情,请访问 MLflow官方文档。