有没有办法用TensorFlow的Dataset API对tf.Dataset进行分区? (不是简单的np.array的分区)

时间:2018-05-06 21:18:49

标签: tensorflow dataset

我查了the doc但我找不到方法。我想要交叉验证,所以我有点需要它。

请注意,我并不是要问如何拆分张量,因为我知道TensorFlow为另一个问题提供了一个API。我问的是如何对tf.Dataset进行分区(这是一个抽象)。

2 个答案:

答案 0 :(得分:1)

恐怕你做不到。数据集API是一种在运行时有效地将输入流式传输到网络的方法。它不是一整套操纵整个数据集的工具 - 在这方面它可能有点用词不当。

另外,如果可以的话,这可能是一个坏主意。你宁愿一劳永逸地完成这项训练/测试。

  • 可让您离线查看这些设置
  • 如果每次运行实验时都进行拆分,则如果您不是非常小心(例如,当您向现有数据集添加更多数据时),样本可能会开始交换集合。

另请参阅有关how to split a set into training & testing in tensorflow的相关问题。

答案 1 :(得分:1)

您可以:

1)使用shard转换将数据集划分为多个“碎片”。请注意,为了获得最佳性能,应该对数据源(例如文件名)进行分片。

2)从TensorFlow 1.12开始,您还可以使用window转换来构建数据集的数据集。