logging - 如何将以前的运行更新到 MLFlow?
问题描述
我想更新以前使用 MLFlow 完成的运行,即。更改/更新参数值以适应实现中的更改。典型用例:
- 使用参数 A 记录运行,然后记录参数 A 和 B。使用其默认值更新先前运行的参数 B 的值会很有用。
- “专门化”一个参数。使用布尔标志作为参数实现模型。更新实现以取而代之的是字符串。现在我们需要更新之前运行的参数值,使其与新行为保持一致。
- 更正先前运行中记录的错误参数值。
丢弃整个实验并不总是那么容易,因为我需要保留以前的运行以用于统计目的。我也不想只为单个新参数生成新实验,以保留单个运行数据库。
做这个的最好方式是什么?
解决方案
要添加或更正现有运行的参数、指标或工件,请将 run_id 而不是 Experiment_id 传递给 mlflow.start_run 函数
with mlflow.start_run(run_id="your_run_id") as run:
mlflow.log_param("p1","your_corrected_value")
mlflow.log_metric("m1",42.0) # your corrected metrics
mlflow.log_artifact("data_sample.html") # your corrected artifact file
您可以在完成后随时更正、添加或删除任何 MLflow 运行。从 UI 或使用mlflow.search_runs 获取 run_id。
资料来源:https ://towardsdatascience.com/5-tips-for-mlflow-experiment-tracking-c70ae117b03f
推荐阅读
- react-native - 此版本的 IntelliJ IDEA(或 Android Studio)的 Android Support 插件无法打开此项目,请使用 4.2 版本重试
- postgresql - PostgreSQL 聚合和过滤
- html - 为什么当我按下“tab”键时我的响应式导航栏被选中?
- python - 使用 for 语句在列表中查找特定模式
- java - Android 资源链接失败:values.xml
- gradle - 无法在使用 kotlin dsl 的 scala-java polyglot gradle 项目中的 java 编码中使用 scala 类
- asp.net-core - OkObjectResult 到 Model 类型转换
- asp.net-core - 消费者不消费消息服务总线队列
- javascript - 如何在 ES6 中提取数组值数组并推入相同的数组?
- python - 如何将来自不同列的所有相关值放在一起