Using model.eval() with batchnorm gives low score

My network use batchnorm in each layer.The score is pretty high during training.But once I move to testing model and apply model.eval() the score is nearly 0,knowing that the score is high when I use model.train() on the test data.
And I noticed that the testing score using model.train() didn’t change after everal epochs training.
Any solutions please?

I’m experiencing the same problem