I can’t see any obvious errors in your code.
The batchnorm layers keep running estimates of mean and variance, and those stats may vary from one epoch to the next. I can’t see any other reason why the computed output should differ from the saved output.