如何在已经命名空间的 kedro 管道中从另一个命名空间调用数据对象?

问题描述 投票:0回答:1

我在 kedro 中有以下命名空间管道:

def create_pipeline(**kwargs) -> Pipeline:
    pipeline_instance = pipeline(
        [
            node(
                func=split_data,
                inputs=["model_input_table", "params:model_options"],
                outputs=["X_train", "X_test", "y_train", "y_test"],
                name="split_data_node",
            ),
            node(
                func=train_model,
                inputs=["X_train", "y_train"],
                outputs="regressor",
                name="train_model_node",
            ),
            node(
                func=evaluate_model,
                inputs=["regressor", "X_test", "y_test"],
                outputs=None,
                name="evaluate_model_node",
            ),
        ]
    )
    ds_pipeline_1 = pipeline(
        pipe=pipeline_instance,
        inputs={"model_input_table":"feature_engineering.ds1_input"}
        namespace="active_modelling_pipeline",
    )
    ds_pipeline_2 = pipeline(
        pipe=pipeline_instance,
        inputs={"model_input_table":"feature_engineering.ds2_input"}
        namespace="candidate_modelling_pipeline",
        parameters={"params:model_options": "params:model_options_experimental"},
    )

    return pipeline(
      pipe = ds_pipeline_1 + ds_pipeline_2, 
      namespace="modeling_pipeline"

我希望 ds_pipeline_1 和 ds_pipeline_2 的“model_input_table”不同,并且来自另一个命名空间,例如“feature_engineering.ds1_input”(这就是它在catalog.yml中的存储方式)。

参数也一样:我想将它们映射到“params:feature_engineering.model_options_experimental”

将此管道的命名空间强制为“modeling_pipeline”:

  • “feature_engineering.ds1_input”到“modeling_pipeline.feature_engineering.ds1_input”
  • “参数:feature_engineering.model_options_experimental”到“”参数:modeling_pipeline.feature_engineering.model_options_experimental”

这些数据对象不存在于我的数据目录中。

如何解决这个问题?解决方法是什么?

namespaces kedro
1个回答
-1
投票

你找到答案了吗?

我也有同样的问题,但是无法解决。

© www.soinside.com 2019 - 2024. All rights reserved.