Is there a specific reason why torch.nn.functional.mse_loss is wrapped in the class torch.nn.MSELoss (and likewise for the other loss functions)? Feels slightly cumbersome to first instantiate a class and then call its forward. Is there some autograd magic going on?