我有一个从一个tfrecord文件创建的数据集。该数据集包含5个不同的类。
现在我想从每个批次创建具有固定数量元素(例如8个)的批次。因此,它应该创建包含每个类的8个元素的40个元素的批次。
这可能与tf.data有关吗?
最简单的事情是(也许不是很方便):
a)准备5种不同的TFRecords
,每种5
只包含一个特定类别的元素。
b)创建tf.data.TFRecordDataset
不同的5
实例,因此iterators = [....] # Store your iterators in a list
data = list(map(lambda x : x.get_next(), iterators))
data_to_use = tf.concat(....) # Concat your data in one single batch of `40` elements.
不同的迭代器。
c)然后在主代码中:
5
a)仅使用一个TFRecord。但创建tf.data.filter(predicate)
不同的实例
b)在每个实例中,使用tf.data
API的c)
方法来过滤属于一个特定类的记录。为此你必须编写一个函数,它可以检查每个记录的类。
c)然后按照之前的解决方案执行步骤qazxswpoi。