The result of last training iteration and first iteration of validation is different. Which parameters are vary during validation? I have taken the same image in last iteration of training and first iteration of validation. The result is different.
Assuming you are calling
model.train() before starting training the model and
model.eval() during the evaluation some layers will change their behavior, such as Dropout (which will be disabled during evaluation) and BatchNorm (which will use its running stats during evaluation instead of the batch stats to normalize the input activation).