James_W:

did you mean ..NOT used?


I meant: if the only layers in the model, which change their behavior during training/evaluation, are dropout and batchnorm layers, setting model.eval() at the beginning of the script would disable them (as you’ve also said) and you could thus just remove the layers.
However, custom layers can also use the self.training flag internally and thus switch their behavior, but I don’t know if that’s the case in this repository.



 James_W:

What is perplexing is that when I change the eval just for the training


I don’t understand this, as I thought model.eval() is already used during training and evaluation.