4

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_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')
4

2 回答 2

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

    run_id = run.info.run_id
    mlflow.log_metric("metric_1", metric_val)

于 2020-01-21T09:48:18.957 回答
2

以上应该可以工作,实际上是在 with mlflow.start_run() 块内保持活动运行的最佳方法。

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

于 2020-01-22T19:02:40.760 回答