# How to further improve on overfitting?

I'm training from scratch a simple CNN multi-class classification (images taken from a small camera are black and white). I tried it with 2x conv layers and now i've worked up to 4x; likewise i've tried from 700,000 params to now about 10,000 but it's all the same with the 1st epoch performing well and the rest not so. I've just tried randomly restarting a bunch of times and got max 70% val_accuracy

I have 4 classes with 1000 image per class

This is my model architecture:

I'm using reduceLRonPlateau and checkpoint; took out early stopping because it was stopping early basically it overfits with the lowest val_loss at 1st epoch. Do i need more data? I've already tried the imagedataaugmentation. This is the snapshot of the training

this is what i've added in my convlution layer code that produces the above results :

kernel_regularizer='l1',
bias_regularizer=regularizers.L2(1e-4)

i have no fully dense layer just the output layer straight after flatenning


This was an issue I was struggling with for over a week but the eventual problem seemed to be perhaps something in the way the function was done; Initially I used flow_from_directory and after exhausting all other methods linked to overfitting - augmentation, dropout, regularization, parameters, number neurons, layers, callbacks, checking my own captured original data - I tried using image_dataset_from_directory` and it solved it; nevertheless I will repost the initial problem here in case anyone in future faces the same issue.