Because torch auto grad wants to (and can)  compute grad on multiple pass,
as @JosephC  said, you should always use
with torch.no_grad():
metric = evaluate(model)

In forward pass because you call backward, torch removes all data required for computing grad after computing it.