Epoch describes the number of times the algorithm sees the entire dataset whereas an Iteration tells the number of times a batch of data passed through the algorithm. For example, consider the input dataset consists of 100,000 records and if we train the model for 10 epochs, let the batch size = 1 i.e loading each data point every time and performing forward, backward propagation for every data point [Optimiser would be the Stochastic Gradient Descent]. Hence, the number of iterations per epoch for the above example would be 100,000 and the total number of epochs would be 10.