I have developed CNN models for simple image recognition before. This problem is for recognising hurricane damage from satellite imagery. I have created a CNN model to identify elements of the image.
The loss and accuracy results show that the model is not learning at all i.e. the binary classification accuracy is steady at 0.5.
I would say it just luck or bad luck, however you want to call it. Adding BatchNormalization would probably stabilize it a little bit.
You could use the GPU available in Google Colab or use Kaggle (you get 40 gpu hours / week if you register your phone number).
And yes, you can of course use the tf dataset structure, but i didn’t really feel like searching for a bug there after the keras ImageDataGenerator worked, it is a bit slower but easier to read and debug.
After 15 epochs the training accuracy was well above 90%, and validation was still around 85% after having dipped for a while. My guess is that the earlier validation accuracy was just a fluke