Different loss values in run_glue

Hi, Im using run_glue to fine tune some models , I was training the model with just 4 epochs, and seeing the logs after each epoch, and everything good but when it finishes it gives me like the final train metrics and the values are totally different

I got this

{‘loss’: 0.5777, ‘learning_rate’: 7.500000000000001e-06, ‘epoch’: 1.0}
{‘loss’: 0.3363, ‘learning_rate’: 5e-06, ‘epoch’: 2.0}
{‘loss’: 0.2117, ‘learning_rate’: 2.5e-06, ‘epoch’: 3.0}
{‘loss’: 0.1612, ‘learning_rate’: 0.0, ‘epoch’: 4.0}

And after this

***** train metrics *****
epoch = 4.0
train_loss = 0.3217
train_runtime = 0:01:06.18
train_samples = 50
train_samples_per_second = 3.384
train_steps_per_second = 0.423

why I got different training losses 0.16 vs 0.32 ??? . Due to it is the last epoch shouldn’t I get the same training loss why is this happening?