如何在 mlflow.start_run() 中获取当前的 run_id ?

Onl*_*dzy 8 python mlflow

mlflow.active_run()不返回任何内容,所以我不能只使用 current_rui_id = mlflow.active_run().info.run_id

我必须在此构造中获取run_id ,以便能够继续在另一个块内记录参数、指标和工件,但对于同一模型:

with mlflow.start_run(run_name="test_ololo"):

    """ 
       fitting a model here ...
    """

    for name, val in metrics:
        mlflow.log_metric(name, np.float(val))

    # Log our parameters into mlflow
    for k, v in params.items():
        mlflow.log_param(key=k, value=v)

    pytorch.log_model(learn.model, f'model')
    mlflow.log_artifact('./outputs/fig.jpg')
Run Code Online (Sandbox Code Playgroud)

我必须获取当前的run_id才能在同一次运行中继续训练

with mlflow.start_run(run_id="215d3a71925a4709a9b694c45012988a"):

    """
       fit again
       log_metrics
    """

    pytorch.log_model(learn.model, f'model')
    mlflow.log_artifact('./outputs/fig2.jpg')
Run Code Online (Sandbox Code Playgroud)

Onl*_*dzy 10

with mlflow.start_run(run_name="test_ololo") as run:

    run_id = run.info.run_id
Run Code Online (Sandbox Code Playgroud)

  • 尽管此代码可能会解决问题,但一个好的答案还应该解释它如何提供帮助以及代码的作用。 (2认同)

小智 7

您可以尝试以下代码片段:

import mlflow
mlflow.start_run()
run = mlflow.active_run()
print("Active run_id: {}".format(run.info.run_id))
mlflow.end_run()
Run Code Online (Sandbox Code Playgroud)


小智 5

上面的方法应该可行,并且实际上是在 with 块内获取活动运行的最佳方法mlflow.start_run()

为了完整起见,mlflow.active_run().info.run_id如果在块内部执行,也将起作用with。该with块将在退出时结束 mlflow 运行,因此一旦块退出,就没有活动运行。