在每个类的数据集中拆分tensorflow数据集

问题描述 投票:2回答:1

我有一个从一个tfrecord文件创建的数据集。该数据集包含5个不同的类。

现在我想从每个批次创建具有固定数量元素(例如8个)的批次。因此,它应该创建包含每个类的8个元素的40个元素的批次。

这可能与tf.data有关吗?

python tensorflow tensorflow-datasets
1个回答
2
投票

最简单的事情是(也许不是很方便):

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

Another approach (without creating separate datasets)

a)仅使用一个TFRecord。但创建tf.data.filter(predicate)不同的实例

b)在每个实例中,使用tf.data API的c)方法来过滤属于一个特定类的记录。为此你必须编写一个函数,它可以检查每个记录的类。

c)然后按照之前的解决方案执行步骤qazxswpoi。

© www.soinside.com 2019 - 2024. All rights reserved.