在机器学习领域,跟踪实验和模型性能是至关重要的。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_end
、on_fit_epoch_end
和on_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
。有关更多命令选项,请参考命令部分。