- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
kedro
建议将参数存储在 conf/base/parameters.yml
中。让我们假设它看起来像这样:
step_size: 1
model_params:
learning_rate: 0.01
test_data_ratio: 0.2
num_train_steps: 10000
现在假设我有一些 data_engineering
管道,其 nodes.py
具有如下所示的函数:
def some_pipeline_step(num_train_steps):
"""
Takes the parameter `num_train_steps` as argument.
"""
pass
我如何将嵌套参数直接传递给 data_engineering/pipeline.py
中的此函数?我尝试失败:
from kedro.pipeline import Pipeline, node
from .nodes import split_data
def create_pipeline(**kwargs):
return Pipeline(
[
node(
some_pipeline_step,
["params:model_params.num_train_steps"],
dict(
train_x="train_x",
train_y="train_y",
),
)
]
)
我知道我可以使用 ['parameters']
将所有参数传递到函数中,或者使用 ['params: 传递所有
但它看起来不优雅,我觉得一定有办法。如有任何意见,将不胜感激!model_params
参数model_params']
最佳答案
(免责声明:我是 Kedro 团队的一员)
谢谢你的提问。不幸的是,当前版本的 Kedro 不支持嵌套参数。临时解决方案是在节点内使用顶级键(正如您已经指出的那样)或使用某种参数过滤器来装饰节点函数,这也不优雅。
也许最可行的解决方案是自定义您的 ProjectContext
(在 src/<package_name>/run.py
中)通过覆盖 _get_feed_dict
进行类方法如下:
class ProjectContext(KedroContext):
# ...
def _get_feed_dict(self) -> Dict[str, Any]:
"""Get parameters and return the feed dictionary."""
params = self.params
feed_dict = {"parameters": params}
def _add_param_to_feed_dict(param_name, param_value):
"""This recursively adds parameter paths to the `feed_dict`,
whenever `param_value` is a dictionary itself, so that users can
specify specific nested parameters in their node inputs.
Example:
>>> param_name = "a"
>>> param_value = {"b": 1}
>>> _add_param_to_feed_dict(param_name, param_value)
>>> assert feed_dict["params:a"] == {"b": 1}
>>> assert feed_dict["params:a.b"] == 1
"""
key = "params:{}".format(param_name)
feed_dict[key] = param_value
if isinstance(param_value, dict):
for key, val in param_value.items():
_add_param_to_feed_dict("{}.{}".format(param_name, key), val)
for param_name, param_value in params.items():
_add_param_to_feed_dict(param_name, param_value)
return feed_dict
另请注意,此问题已被 addressed on develop并将在下一个版本中提供。该修复使用上面代码片段中的方法。
关于machine-learning - Kedro - 如何将嵌套参数直接传递给节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61452211/
假设我们有多个长期运行的管道节点。 检查点或缓存中间结果似乎很简单,所以当检查点之后的节点被更改或添加时,只有这些节点必须再次执行。 Kedro 是否提供功能来确保,当我运行管道时,只有这些步骤是 已
我们正在 10 多家公司之间部署一个数据联盟。 Wi 将为所有公司部署多个机器学习模型(一般为高级分析模型),我们将管理所有模型。我们正在寻找一种管理多个服务器、集群和数据科学管道的解决方案。我喜欢
我们正在努力对数据进行正确建模以便在 Kedro 中使用 - 我们正在使用推荐的 Raw\Int\Prm\Ft\Mst 模型,但正在努力解决一些概念......例如 什么时候数据集是要素而不是主要数据
我们正在努力对数据进行正确建模以便在 Kedro 中使用 - 我们正在使用推荐的 Raw\Int\Prm\Ft\Mst 模型,但正在努力解决一些概念......例如 什么时候数据集是要素而不是主要数据
我有一个包含相同数据格式的多个文件的目录(每天 1 个文件)。这就像一个数据分成多个文件。 是否可以在不指定每个文件的情况下将所有文件传递给 A Kedro 节点?那么它们都是根据运行程序顺序或并行处
输入是一个数据框列表。如何将其保存到 ExcelLocalDataSet 中,其中每个数据框都是单独的工作表? 最佳答案 目前 ExcelLocalDataset 实现目前面向写一张纸,这为您提供了两
kedro建议将参数存储在 conf/base/parameters.yml 中。让我们假设它看起来像这样: step_size: 1 model_params: learning_rate:
CSVS3DataSet/HDFS3DataSet/HDFS3DataSet 使用 boto3,已知它不是线程安全的 https://boto3.amazonaws.com/v1/documentat
我未能成功禁用 kedro 日志。我尝试将 disable_existing_loggers: True 添加到logging.yml 文件,并将disable:True 添加到所有现有日志,但它似乎
在 Kedro 中,我们可以管道化不同的节点并部分运行一些节点。当我们部分运行一些节点时,我们需要将一些来自节点的输入保存在某个地方,以便当另一个节点运行时它可以访问前一个节点生成的数据。但是,我们在
在 Kedro 管道中,节点(类似于 python 函数)是按顺序声明的。在某些情况下,一个节点的输入是前一个节点的输出。但是,有时在命令行中调用 kedro run API 时,节点不会按顺序运行。
在 IO section of the kedro API docs我找不到相关功能。存储经过训练的模型(例如 .pkl、.joblib、ONNX、PMML)?我错过了什么吗? 最佳答案 有pickl
我想通过命令行控制kedro参数。 根据docs ,kedro可以指定运行时参数,如下: kedro run --params key:value > {'key': 'value'} 它有效。以同样
将 kedro 与 MongoDB 或其他文档数据库结合使用的最佳实践是什么?例如,MongoDB 没有类似于 SQL 的查询语言。 Python 中的大多数 Mongo“查询”(使用 PyMongo
我有数百个 CSV 文件要类似地处理。为简单起见,我们可以假设它们都在 ./data/01_raw/ 中。 (如 ./data/01_raw/1.csv 、 ./data/02_raw/2.csv )
我启动了 ipython session 并尝试加载数据集。 我正在运行 df = Catalog.load("test_dataset") 遇到以下错误 NameError:名称“目录”未定义 我也
我目前正在使用 kedro,版本 0.15.4 和 pipenv,版本 2018.11.26。 目前,如果我想使用 Pipenv ,我必须执行以下操作(对于本示例,我希望该项目驻留在 kedro-pi
我的管道发出大量 HTTP 请求。这不是一个 CPU 密集型操作,我想旋转比 CPU 内核数量更多的进程。我该如何更改? 最佳答案 ParallelRunner 支持 max_workers 参数,但
我们使用的是 kedro 版本 0.15.8,我们以这种方式从目录中加载一个特定项目: from kedro.context import load_context get_context().cat
我在我阅读和处理的 S3 存储桶中有多个文本文件。因此,我在 Kedro 数据目录中定义了 PartitionedDataSet,如下所示: raw_data: type: Partitioned
我是一名优秀的程序员,十分优秀!