You shouldn’t re-use BN layers. For example, here



 synchro:

x = F.relu(self.conv1(x))
x = self.bn_6(x)
x = self.pool(F.relu(self.conv2(x)))
x = self.bn_6(x)


self.bn_6 sees data from two different layers, but accumulating the values to the same running stats buffer. Then the running stats will be inaccurate and the performance will suffer in eval() mode. Make sure that each BN layer is used only at one place in the network.