有没有办法用 TensorFlow 的数据集 API 对 tf.Dataset 进行分区?

Is there a way to partition a tf.Dataset with TensorFlow’s Dataset API?

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

请注意,我不是在问如何拆分张量,因为我知道 TensorFlow 提供了一个 API 已经在另一个问题中得到了回答。我在问如何划分 tf.Dataset(这是一个抽象)。

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

另外,如果可以的话,这可能不是个好主意。您宁愿一劳永逸地完成此 train/test 拆分。

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

另请参阅有关 的相关问题。

您可以:

1) 使用shard转换将数据集分割成多个"shards"。请注意,为了获得最佳性能,分片应针对数据源(例如文件名)。

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