【发布时间】:2021-02-10 02:25:47
【问题描述】:
对于一组图像,我很困惑术语数据增强是否意味着转换当前数据集(例如裁剪/翻转/旋转/...),或者它是否意味着通过添加裁剪/来增加数据量翻转/旋转图像到初始数据集。据我了解,从这个question 和这个one,它意味着两者。如果我错了,请纠正我。
所以,使用 Tensorflow 数据集,我想实现第二个:增加数据量。
我正在使用来自 TFDS 的 ImageNet 数据(训练集不可用):
import tensorflow_datasets as tfds
ds = tfds.load('imagenet_a', split='test', as_supervised=True)
我想翻转图像:
def transform(image, label):
image = tf.image.flip_left_right(image)
return image, label
如果我将转换直接应用于数据集,效果会很好。但不会增加数据量:
ds = ds.map(transform)
所以,我尝试创建第二个数据集并将两者连接起来:
ds0 = ds.map(transform)
ds = ds.concatenate(ds0)
但我收到以下错误:
TypeError: Two datasets to concatenate have different types (tf.uint8, tf.int64) and (tf.float32, tf.int64)
这是连接两个数据集以增加训练集的方法吗? 或者如何正确地做到这一点? (或如何解决我的错误)
我知道ImageDataGenerator,但它不包含我想要的转换
【问题讨论】:
-
我不知道,但也许this 会有所帮助。
标签: python tensorflow data-augmentation