对于一组图像,我对数据增广这个术语的含义感到困惑,是指转换当前数据集(例如裁剪/翻转/旋转/...)还是添加裁剪/翻转/旋转后的图像以增加初始数据集的数量。据我所知,从这个问题和这个问题中,它同时意味着这两者。如果我有误,请纠正我。
因此,我想使用Tensorflow Dataset实现第二种情况:增加数据量。
我正在使用来自TFDS的ImageNet数据(训练集不可用):
因此,我想使用Tensorflow Dataset实现第二种情况:增加数据量。
我正在使用来自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,但它不包含我想要的转换。