If you are running out of memory during evaluation, you could wrap the evaluation code block into a with torch.no_grad() block, which would avoid storing the unnecessary intermediate tensors, which would be needed to calculate the gradients.
If that doesn’t help you could lower the batch size (if it’s not already 1) use model sharding (if more than a single GPU is available) or move the evaluation to the CPU.