In case you are seeing a bad validation performance when using a training batch size of 1: this could happen, if the running stats are not representing the underlying dataset stats and a known limitation of batchnorm layers. You could try to change the momentum to smooth the updates and also might want to read e.g. the GroupNorm paper 6 which also explains these limitations.