【问题标题】:Setting parameters in Kedro Notebook在 Kedro Notebook 中设置参数
【发布时间】:2020-02-19 11:35:45
【问题描述】:

是否可以覆盖从 Kedro 笔记本中的 parameters.yaml 文件中获取的属性?

我正在尝试动态更改笔记本中的参数值。我希望能够让用户能够运行标准管道但具有可自定义的参数。我不想更改 YAML 文件,我只想更改笔记本寿命的参数。

我尝试在上下文中编辑参数,但这没有任何影响。

context.params.update({"test_param": 2})

我是否遗漏了什么或者这不是预期的用例?

【问题讨论】:

  • 具体用例:我创建了一个管道,用于计算过去 90 天内某个指标的平均值和标准差。我希望在生产中使用它,但允许用户运行相同的管道,但可以运行任意天数。

标签: python kedro


【解决方案1】:

Kedro 支持从命令行通过运行指定extra parameters

kedro run --params "key1:value1,key2:value2"

这解决了您的第二个用例。

对于笔记本用例,更新context.params 没有任何效果,因为上下文不会将参数存储在self 上,而是在每次调用属性时从配置中提取它们。

但是你仍然可以在上下文对象被实例化后添加额外的参数:

extra_params = context._extra_params or {}
extra_params.update({"test_param": 2})
context._extra_params = extra_params

这将更新应用在来自配置的常规参数之上的额外参数。

【讨论】:

  • 正是我所追求的。
猜你喜欢
  • 2022-10-25
  • 1970-01-01
  • 2023-02-10
  • 1970-01-01
  • 2022-11-02
  • 2017-12-01
  • 1970-01-01
  • 2020-06-08
  • 1970-01-01
相关资源
最近更新 更多