0
$\begingroup$

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') ``` 
$\endgroup$
1
  • $\begingroup$ Avoid shear range and zoom range. Flips and rotations are ok. $\endgroup$ Commented Nov 11, 2022 at 4:56

1 Answer 1

0
$\begingroup$

Solved using tf.keras.layers and applying augmentation when building model.

https://www.tensorflow.org/tutorials/images/data_augmentation

ImageDataGenerator is depreciated.

$\endgroup$

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.