将tf.data API与TFRecord数据一起使用,是否可以使用每个批次的指定文件来形成批次?

时间:2018-12-27 04:38:37

标签: tensorflow tensorflow-datasets tensorflow-estimator tensorflow-slim

我有一个超过200 GB的图像数据集。所以我将原始图像转换为TFRecord格式(超过1024个分片),对图像进行编码,将其编码为记录中的文件名和类标签(通过tf.train.Example)。现在,对于我来说,通过迭代器随机获取文件将不起作用。我需要进行批量构建的方式如下:我的每批包含11张图像。在这11张图像中,第一张图像(索引图像)可以被随机加载(例如,迭代器),但是为此,只能从一组预定的200张图像中选择批次中的其他10张图像(候选图像)索引图像(我有映射文件)。我知道这200个文件的名称,为了形成一个批处理,需要从这些文件中随机选择10个。因此,对于我的批处理,我需要我的迭代器来加载并通过指定的文件名提供这些指定的10个文件。

我浏览了tf.data api的几个示例,但找不到解决方法。那么可以使用TFRecords和tf.data api来做到这一点吗?如果不是,最有效的方法是什么(不将整个数据集加载到内存中)?

0 个答案:

没有答案