I  compared output of all layers of original model and loaded  model. I found output of BatchNorm2d was different.
The problems is Pytorch wasn’t saving ‘scale’ and ‘zero_point’ of unfused QuantizedBatchNorm in checkpoints. Two solutions -

Save these values as pickle when saving model. While loading model, load pickle and add scale and zero point to  QuantizedBatchNorm layers.
Fuse BatchNorm with Convolution.