【发布时间】: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