From the results we got, we can see that there is a clear symptom of overfitting—the training accuracy looks great (91%), but the testing accuracy is lower than even random guessing. The most likely two causes for this are as follows:
- The model has too many parameters
- The model has been trained for too long
Since we are overfitting, we need to try some regularization technique; the simplest in the case of neural networks is training the model for fewer epochs. Now, let's get the initial weights and biases of the network back to the original values (the ones we saved in the a.h5 file):
nn_classifier.load_weights('class_initial_w.h5')
Now the weights have been reset, let's train our model again, this time only for 50 epochs:
batch_size = 64
n_epochs = 50
nn_classifier.compile(loss='binary_crossentropy&apos...