When classifying images with Keras, I am able to achieve a validation accuracy around 90-95%, however, I am trying to improve with the use of augmentation so have switched from image_dataset_from_directory, to flow_from_directory, to make use of the ImageDataGenerator.
For some reason the validation accuracy holds at 33% and does not improve? I have modified the augmentation parameters to see if that is affecting the training, but it does not seem to be that.
Could anyone explain if I am doing something wrong, or if there is an alternative method to implementing augmentation?
original: (Found 240 files belonging to 3 classes. Using 192 files for training. Found 240 files belonging to 3 classes. Using 48 files for validation. Found 60 files belonging to 3 classes.)
train_data = tf.keras.preprocessing.image_dataset_from_directory(train_dir, image_size=img_size, batch_size=batch_no, seed=seed_no, shuffle=True, subset="training", validation_split=0.2, label_mode="categorical") validation_data = tf.keras.preprocessing.image_dataset_from_directory(train_dir, image_size=img_size, batch_size=batch_no, seed=seed_no, shuffle=False, validation_split=0.2, subset="validation", label_mode="categorical") test_data = tf.keras.preprocessing.image_dataset_from_directory(test_dir, image_size=img_size, batch_size=batch_no, shuffle=False, seed=seed_no, label_mode="categorical") Replaced: (Found 192 images belonging to 3 classes. Found 48 images belonging to 3 classes. Found 60 images belonging to 3 classes. )
dgen_test = ImageDataGenerator(rescale = 1./255.) dgen_train = ImageDataGenerator(rescale = 1./255., zoom_range = 0.2, horizontal_flip = True, vertical_flip= True, rotation_range=20, shear_range=0.2, validation_split=0.2 ) train_data = dgen_train.flow_from_directory(train_dir, subset='training', target_size=img_size, batch_size=batch_no, shuffle=True, seed=seed_no, class_mode="categorical") validation_data = dgen_train.flow_from_directory(train_dir, subset='validation', target_size=img_size, batch_size=batch_no, shuffle=False, seed=seed_no, class_mode='categorical') test_data = dgen_test.flow_from_directory(test_dir, target_size=img_size, batch_size=batch_no, shuffle=False, seed=seed_no, class_mode='categorical') ```