gpt4 book ai didi

python - 使用 MLflowClient 嵌套运行

转载 作者:行者123 更新时间:2023-12-04 11:41:38 25 4
gpt4 key购买 nike

mlflow ,您可以使用可在 UI 中折叠的 fluent 项目 API 运行嵌套运行。例如。通过使用以下代码(有关 UI 支持,请参阅 this):

with mlflow.start_run(nested=True):
mlflow.log_param("mse", 0.10)
mlflow.log_param("lr", 0.05)
mlflow.log_param("batch_size", 512)
with mlflow.start_run(nested=True):
mlflow.log_param("max_runs", 32)
mlflow.log_param("epochs", 20)
mlflow.log_metric("acc", 98)
mlflow.log_metric("rmse", 98)
mlflow.end_run()

由于数据库连接问题,我想在我的应用程序中使用单个 mlflow 客户端。

我如何堆叠运行,例如对于超参数优化,使用通过 MlflowClient().create_run() 创建的运行?

最佳答案

实现起来有点复杂,但我通过查看 Fluent Tracking Interface 找到了一种方法直接使用 mlflow 时使用进口。
start_run函数你可以看到一个nested_run只是通过设置一个特定的标签来定义 mlflow.utils.mlflow_tags.MLFLOW_PARENT_RUN_ID .只需将其设置为 run.info.run_id父运行的值,它将在 UI 中正确显示。
下面是一个例子:

from mlflow.tracking import MlflowClient
from mlflow.utils.mlflow_tags import MLFLOW_PARENT_RUN_ID

client = MlflowClient()
try:
experiment = client.create_experiment("test_nested")
except:
experiment = client.get_experiment_by_name("test_nested").experiment_id
parent_run = client.create_run(experiment_id=experiment)
client.log_param(parent_run.info.run_id, "who", "parent")

child_run_1 = client.create_run(
experiment_id=experiment,
tags={
MLFLOW_PARENT_RUN_ID: parent_run.info.run_id
}
)
client.log_param(child_run_1.info.run_id, "who", "child 1")

child_run_2 = client.create_run(
experiment_id=experiment,
tags={
MLFLOW_PARENT_RUN_ID: parent_run.info.run_id
}
)
client.log_param(child_run_2.info.run_id, "who", "child 2")
如果您想知道:也可以使用 mlflow.utils.mlflow_tags.MLFLOW_RUN_NAME 以这种方式指定运行名称。标签。

关于python - 使用 MLflowClient 嵌套运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56597812/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com