Solved by GuillaumeLeclerc in post #2 
              
              
                From what I know train() enables some modules like dropout, and eval() does the opposit. 
So I would say: before you start training your model call train() and then eval() when you are done. The classic workflow would be: 

call train()

epoch of training on the training set
call eval()

evaluate yo…