1.At each epoch, keras passes through the entire dataset corresponding to the batch_size after it gets fit into your model.
2.Then, on your validation set, the model will do a prediction at the end of each epoch.
3.One epoch would mean that weight is updated only once per element. But we need to minimize the error values or loss function so that we can get the optimal result. So, for this we need multiple epochs, and multiple epochs will pass through the entire dataset multiple times and each time the weight is updated.
For example, if you have a dataset of 50000 items and a batch_size of 5, the weight of your model will be updated by using 5 items and this will go until it has gone through the entire dataset.
This is how keras fits the model via epochs.