我正在时尚MNIST数据集上构建变型自动编码器,因此我正在构建一个具有与输入和输出相同的图像(1、28、28)的模型。现在,我想在增强图像上训练模型,为此我需要一个自定义的DataGenerator。我想要的是:
我通过重新实现flow函数(请参见下面的代码)尝试了此操作,但这似乎仅在输入而不是在输出上进行了增强。
您能指出我做错了吗?
#Altered from the Keras source code
class VAEDataGenerator(ImageDataGenerator):
def flow(self,
x,
batch_size=32,
shuffle=True,
sample_weight=None,
seed=None,
save_to_dir=None,
save_prefix='',
save_format='png',
subset=None):
return NumpyArrayIterator(
x,
x,
self,
batch_size=batch_size,
shuffle=shuffle,
sample_weight=sample_weight,
seed=seed,
data_format=self.data_format,
save_to_dir=save_to_dir,
save_prefix=save_prefix,
save_format=save_format,
subset=subset
)
然后我想通过以下方式使用数据生成器:
train_datagen = VAEDataGenerator(horizontal_flip=True, data_format='channels_first')
vae.fit(train_datagen.flow(training_images),
shuffle=True,
epochs=epochs,
validation_data=(test_images, test_images))