Variables by default do not require grad.
Parameters by default do require grad.
I have edited by example for clarity. Generally the grad function is only used in cases where the .backward() function doesn’t do quite what is needed.