I am trying to understand the difference between validation steps and steps per epoch, Can anybody tell me the difference between these two terms. I also want to know about, how will it be helpful in training and what number should we set in it?
While training, a machine learning model performs training steps on the training data. A step is a single backpropagation performed by the model. Similarly, the validation step is a single backpropagation performed on the validation data. The validation steps are generally performed after several training steps to track the validation accuracy. This way, we can track the model during its training whether it is overfitting or not.
Steps per epoch
Once we know what is a step, the next term is how many steps does a model will perform in a single epoch. We call it as one epoch when model has performed several steps and completed the whole training data. In the next epoch, the model will begin its steps again from the start of the training data. And while training it using the stochastic gradient descent process (it is generally used to train the deep learning models) we need to specify a batch size. For eg - if we specify the batch size as 16, the model will perform 16 forward propagations, then the loss will be calculated on all 16 predictions that the model has predicted and only one back propagation will be performed to correct the weights. And let's say there are 1600 training examples in the training set, so there will be 1600/16 = 100 batches. Also, there will be 100 backpropagations. 1 backpropagation = 1 step. Thus, there are 100 steps per epoch for this dataset.
Choosing numbers for both of them
Validation steps cannot be chosen. You should perform all the steps on the validation set and track It as your validation accuracy (or relevant metric). If you mean, you want to choose a number of steps after which validation steps should be performed, then that totally depends on your speed and convenience. This won't affect the performance of the model directly.
Steps per epoch will directly affect the performance of the model. And, it depends on the batch size. This blog will help you understand how batch sizes affect the training process. And (steps per epoch) = (total number of training instances) / (batch size).