I am a bit confused on how Keras fits the models. In general, Keras models are fitted by simply using model.fit(...) something like the following:

model.fit(X_train, y_train, epochs=300, batch_size=64, validation_data=(X_test, y_test))

My question is: Because I stated the testing data by the argument validation_data=(X_test, y_test), does it mean that each epoch is independent? In other words, I understand that at each epoch, Keras train the model using the training data (after getting shuffled) followed by testing the trained model using the provided validation_data. If that's the case, then no matter how many epochs I choose, I only take the results of the last epoch!!

If this scenario is correct, so we do we need multiple epoches? Unless these epoches are dependent somwhow where each epoch uses the same NN weights from the previous epoch, correct?

Thank you