Я создаю вариационный автоматический кодировщик на основе набора данных Fashion MNIST, поэтому я создаю модель с одним и тем же изображением (1,28,28) как на входе, так и на выходе. Теперь я хочу обучить модель на расширенных изображениях, для чего мне понадобится пользовательский генератор данных. Я хочу:
- Иметь одинаковые дополнения как на входе, так и на выходе.
- Используйте функцию потока для обучения модели.
I попробовал это, переопределив функцию потока (см. код ниже), но похоже, что это увеличивает только вход, а не выход.
Не могли бы вы указать, что я делаю неправильно?
#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))