I have a dataset that contains about 87000 images in a directory, with each class in a separate subfolder. I've tried the class ImageDataGenerator()
and the function flow_from_directory()
for generating the images, it worked completely fine but I have a question..
Does flow_from_directory()
only yield the augmented images? and if this is the case, how can I train my model "which has overfit the training set" on both original and augmented data?
Thanks
2 Answers
ImageDataGenerator do augmentation on the fly base on the setting you give , so it did not separate “original” or “augmented “ data , just the possibility of data been augmented. so your question actually is “ how to tune model when overfitting happens ”? I think you can start from adding dropout or reduce number of parameters. Hope this helps, cheers.
-
$\begingroup$ I've tried adding dropout and parameter reduction, they helped by increasing validation accuracy from 0.72 to 0.85, but I think there's still a room for improvement. Thanks! $\endgroup$ Jun 27, 2020 at 10:08
Below are the things can be done in order to reduce variance (overfitting):
- Add more training data.
- Normalization (BatchNorm, LayerNorm)
- Data Augmentation
- Regularization (Dropout, L2, WeightDecay)
- Error Analysis
- Tune Hyperparameters
- Early Stopping
- Use better state of the art model or transfer learning