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.

If you wish to learn more about how to use python for data science, then go through data science python programming course by Intellipaat for more insights.