首页 > 解决方案 > 在 Kedro Notebook 中设置参数

问题描述

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

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

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

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

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

标签: pythonkedro

解决方案


Kedro 支持通过运行从命令行指定额外的参数

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

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


推荐阅读