but if we make predictions for a batch, then optimizer.step() would only update parameters once, for example, if our predictions were something like [a, b, a, a, b], and then we do optimizer.step(), then it would update parameters of our neural network once, if we want to update after every prediction model makes, then we will have to do optimizer.step() after every prediction, so model predicts something like [a], we do optimizer.step() on some parameters, model predicts [b], we do optimizer.step() on some different parameters.