ericrhenry:

output of a full .forward() operation, that it was a leaf–but that could easily be because I’m not completely grasping the leaf concept.


I think you see leafs the wrong way. A leaf Tensor is a Tensor that has no gradient history. In particular, a Parameter in your net is a Tensor with no history and so is identified as the Tensor that you’re currently learning.
The loss is at the complete other end. Since you call .backward() on it, all the gradient for a quantity foo will be dloss/dfoo. And so the gradient you will see for the loss will always be dloss/dloss = 1.
The ones that are interesting are the ones for the leafs like a weight w dloss/dw that shows you the direction this weights should go to reduce the loss.