I am trying to train an autoencoder and I want to feed the data using a data generator API of Keras. The code snippet is given below. I have tried both fit() and fit_generator() and none of them is working.
seed=24
batch_size= 8
image_height,image_width =32,32
img_data_gen_args = dict(rescale = 1/255.)
image_data_generator = ImageDataGenerator(**img_data_gen_args)
image_generator = image_data_generator.flow_from_directory(path,
seed=seed,
batch_size=batch_size,
class_mode='input')
encoder_input = keras.Input(shape=(image_height,image_width,1))
# encoder
x = Conv2D(32, (3, 3), activation='relu', padding='same')(encoder_input)
x = MaxPooling2D((2, 2), padding='same')(x)
encoded = Conv2D(1, (3, 3), activation='relu', padding='same')(x)
encoder = Model(encoder_input, encoded)
# decoder
decoder_input= Input(shape=(8, 8, 1))
decoder = Conv2D(32, (3, 3), activation='relu', padding='same')(decoder_input)
x = UpSampling2D((2, 2))(decoder)
decoded = Conv2D(1, (3, 3), activation='sigmoid', padding='same')(x)
decoder = Model(decoder_input, decoded)
# auto encoder
auto_input = Input(shape=(image_height,image_width, 1))
encoded = encoder(auto_input)
decoded = decoder(encoded)
autoencoder = Model(auto_input, decoded)
autoencoder.compile(optimizer="adam", loss="binary_crossentropy", metrics=['accuracy'])
num_train_imgs = len(os.listdir(path))
steps_per_epoch = num_train_imgs //batch_size
history = autoencoder.fit_generator(generator=image_generator,
validation_data=image_generator,
epochs=20)
# history = model.fit_generator(image_generator, validation_data=image_generator,
# steps_per_epoch=steps_per_epoch,
# validation_steps=steps_per_epoch, epochs=50)
#history = autoencoder.fit(
# image_generator,
# epochs=10,
# validation_data=image_generator,
#)
I am getting the following error
---------------------------------------------------------------------------
UnimplementedError Traceback (most recent call last)
Input In [62], in <cell line: 1>()
----> 1 history = autoencoder.fit_generator(generator=image_generator,
2 validation_data=image_generator,
3 epochs=20)