Solved by ptrblck in post #2 
              
              
                model.eval() disables the dropout and uses the internal running stats in all batchnorm layers (also custom modules might change their behavior using the self.training flag, which is changed by calling eval()). 
If your validation loss and predictions are bad, this might point to bad running estimate…