为了账号安全,请及时绑定邮箱和手机立即绑定

在 Kedro 中哪里执行节点输出的保存?

在 Kedro 中哪里执行节点输出的保存?

海绵宝宝撒 2022-06-28 18:09:02
在 Kedro 中,我们可以流水线化不同的节点并部分运行一些节点。当我们部分运行一些节点时,我们需要将一些节点的输入保存在某个地方,以便在另一个节点运行时它可以访问前一个节点生成的数据。但是,我们在哪个文件中编写代码——pipeline.py、run.py 还是nodes.py?例如,我试图将 dir 路径直接保存到变量名“model_path”下的 DataCatalog。来自 pipeline.py 的片段:    # A mapping from a pipeline name to a ``Pipeline`` object.def create_pipelines(**kwargs) -> Dict[str, Pipeline]:io = DataCatalog(dict(    model_path=MemoryDataSet()))io.save('model_path', "data/06_models/model_test")print('****', io.exists('model_path'))pipeline = Pipeline([    node(        split_files,        ["data_csv", "parameters"],        ["train_filenames", "val_filenames", "train_labels", "val_labels"],        name="splitting filenames"    ),    # node(    #     create_and_train,    #     ["train_filenames", "val_filenames", "train_labels", "val_labels", "parameters"],    #     "model_path",    #     name="Create Dataset, Train and Save Model"    # ),    node(        validate_model,        ["val_filenames", "val_labels", "model_path"],        None,        name="Validate Model",    )]).decorate(decorators.log_time, decorators.mem_profile)return {    "__default__": pipeline}但是,当我运行 Kedro 时出现以下错误:ValueError: Pipeline input(s) {'model_path'} not found in the DataCatalog
查看完整描述

1 回答

?
慕斯王

TA贡献1864条经验 获得超2个赞

DataCatalog节点输入在传递给节点函数之前由 Kedro 自动加载。因此,在节点成功生成一些数据后,节点输出将保存到 DataCatalog。DataCatalog 配置默认取自conf/base/catalog.yml.


在您的示例model_path中,由Create Dataset, Train and Save Modelnode 生成,然后由Validate Model. 如果在 中找不到所需的数据集定义conf/base/catalog.yml,Kedro 将尝试使用MemoryDataSet. 如果您运行同时包含Create Dataset...和Validate Model节点的管道(假设没有出现其他问题),这将起作用。但是,当您尝试Validate Model单独运行节点时,Kedro 会尝试model_path从内存中读取数据集,而内存中不存在该数据集。


所以,TLDR:


为了减轻这种情况,您需要:


a)model_path通过在您的 中添加以下内容来坚持conf/base/catalog.yml:


model_path:

  type: TextLocalDataSet

  filepath: data/02_intermediate/model_path.txt

b)Create Dataset, Train and Save Model至少运行一次节点(及其依赖项)


完成 a) 和 b) 后,您应该能够开始Validate Model单独运行。


查看完整回答
反对 回复 2022-06-28
  • 1 回答
  • 0 关注
  • 144 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信