【问题标题】:Can MLFlow log new metrics in a terminated run?MLFlow 可以在终止的运行中记录新的指标吗?
【发布时间】:2021-08-01 00:10:21
【问题描述】:

我想使用 MLFlow(使用 Python)记录时间间隔等于 1 天的时间序列。 我的想法是创建一个具有特定 ID 的新运行,并每天使用具有新值的函数 log_metric(例如,使用 cron 作业)。一旦我的运行终止,我可以“重新打开”它并记录一个新的指标吗? 我的想法是:

# Day 1
import mlflow

tracking_uri = "my_uri"
mlflow.set_tracking_uri(tracking_uri)
xp_id = 0
mlflow.start_run(run_name="test", experiment_id=xp_id)
mlflow.log_metric("test_metric", 1)
mlflow.end_run()

接下来的几天:

import mlflow

def log_daily_metric(daily_value_metric):
  tracking_uri = "my_uri"
  mlflow.set_tracking_uri(tracking_uri)
  xp_id = 0
  mlflow.restart_run(run_name="test", experiment_id=xp_id)  # /!\ function mlflow.restart does not exist
  mlflow.log_metric("test_metric", daily_value_metric)
  mlflow.end_run()

这样运行 "test" 就会每天记录新的指标。

有什么想法可以实现吗?

【问题讨论】:

    标签: python-3.x time-series mlflow


    【解决方案1】:

    解决方案似乎是:

    # day 1
    
    import mlflow
    
    tracking_uri = "my_uri"
    mlflow.set_tracking_uri(tracking_uri)
    xp_id = 0
    
    client = MlflowClient()
    run = client.create_run(experiment_id=xp_id)
    print(run.info.run_id)  # gives you the run ID of your experiment. Example: "df85f660dca47d21b41454342cd3a7cb". Let's save this id somewhere...
    

    那么,

    import mlflow
    
    def log_daily_metric(daily_value_metric: float, day: int):
      tracking_uri = "my_uri"
      mlflow.set_tracking_uri(tracking_uri)
      xp_id = 0
      client = MlflowClient()
      run_id = "df85f660dca47d21b41454342cd3a7cb"
      client.log_metric(run_id=run_id, key="test_metric", value=daily_value_metric, step=day)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-23
      • 2022-06-20
      • 1970-01-01
      • 2021-12-20
      • 2021-09-18
      • 2018-03-19
      • 1970-01-01
      • 2021-08-19
      相关资源
      最近更新 更多