【问题标题】:Kubeflow Pipeline - Storing (passing) TF.DatasetKubeflow Pipeline - 存储(传递)TF.Dataset
【发布时间】:2019-10-13 22:25:53
【问题描述】:

我正在玩 Kubeflow Pipelines,我想要实现的是有一个步骤(python 函数),我创建一个 Iterator (generator),我想从中创建一个 TF.Dataset

Kubeflow 步骤之间的连接只允许具有原始类型的输入/输出,因此我无法将 Iterator 或 iterator-initialized-dataset 传递到下一步。

这是管道概述

+-------------+   +-------------------+   +------------------------------+
| Data Ingest +---> Create TF.Dataset +---> Consume Tf.Dataset in Model  |
+-------------+   +-------------------+   +------------------------------+

由于我只能传递原始类型,是否有可能存储迭代器初始化数据集?

数据在 Google 存储上,大小大到无法放入内存,有人怎么做到这一点?

我知道这是一个宽泛的问题,但由于 Kubeflow 还很新,我无法在任何地方找到任何有用的资源。

【问题讨论】:

  • 您的数据摄取步骤会发生什么?一些预处理,我想?您是否考虑在第一步之后存储您的预处理数据,并在模型训练步骤中初始化您的 tf.dataset 迭代器?
  • @sdcbr 没错,事实是,预处理可能会及时改变,因此存储处理过的数据可能是一种矫枉过正。我正在考虑使用地图功能在数据集中动态进行预处理。传递迭代器的想法对我来说非常棒,但是只能在步骤之间传递原始类型。您将如何在模型步骤中使用 TF.Dataset?
  • 我认为您应该以原始格式存储数据(或直到预处理不再更改),并合并您创建和使用数据迭代器的步骤。

标签: python tensorflow tensorflow-datasets kubeflow


【解决方案1】:

将“创建 TF.Dataset”和“使用 Tf.Dataset”分为两个步骤的任何具体原因? 怎么样 1.将它们合并为一个步骤? 2. 通过“write Dataset to storage”/“read Dataset from storage”共享数据集?

【讨论】:

    【解决方案2】:

    您将 TF 数据集存储在哪里?

    建议:在创建时将 TF 数据集存储在 GCS 中。然后使用 tf.data.TFRecordDataset 在下一个管道阶段读取您的数据。

    管道中的阶段具有不同的运行时间。因此,您不能在一个流水线阶段到另一个流水线阶段使用任何变量。

    【讨论】:

      猜你喜欢
      • 2019-09-14
      • 1970-01-01
      • 2022-10-23
      • 2021-04-11
      • 2021-12-14
      • 2021-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多