What is your opinion on this?
Do you run into errors or annoying situations without the context manager?
I my opinion the less context managers the better. Especially, if you are using PEP8! 
Whike the torch.no_grad() context manager makes totally sense, since the gradient calculation was previously a property of the data (Variable(..., volatile=False)) and is now a “property” of the work flow, the eval property belongs to the model in my opinion, since it changes the behavior of some internal Modules. Using this context manager, it might also be more complicated to set some layers into eval, while others stay in train.
Would love to hear other opinions on this!