使用 tf.data.Dataset 创建图像增强以在每个时期产生不同的增强

Create image augmentations with tf.data.Dataset to produce different augmentations with every epoch

我有一个从 tfds 获取的数据集,我想在图像上创建正常的随机旋转,这些图像会随着每个时期的变化而变化

这是我目前使用的管道 我应该将 .map(random_rotate) 放置在此管道中的什么位置,以使增强随着每个时期的变化而变化

ds_train = ds_train.map(scale, num_parallel_calls=AUTOTUNE).cache().shuffle(ds_info.splits['train'].num_examples).batch(batch_size).prefetch(AUTOTUNE).repeat()

您使用的任何随机扩充操作都应放在数据集的 cache() 方法之后。 cache() 将保存您的数据,并且在一个纪元之后对数据集的每次后续调用都将转到缓存位置。这意味着在 cache() 之前发生的操作将不会被再次调用。如果您的旋转增强一次仅适用于一张图像,请将 map() 放在 cache() 之后但在 batch() 之前。如果你的旋转增强适用于批量图像,那么你可以将它放在 batch() 之后但在 prefetch().

之前