memory in many cases for me is the primary reason. you are basically just running a bunch of forward passes through your network. if you have batchnorm layers in your network it is wise to call model.eval() before testing as this will essentially prevent that layer from messing things up if you change the batch size.
see:

  
    
    
    What does model.eval() do for batchnorm layer? 
  
  
    During training, this layer keeps a running estimate of its computed mean and variance. The running sum is kept with a default momentum of 0.1.

During evaluation, this running mean/variance is used for normalization.

Reference: http://pytorch.org/docs/master/nn.html#torch.nn.BatchNorm1d