Hi everyone -
TLDR; Is there a list of operations that have (or a list of operations that don’t have) backward defined?
There seem to be 3 options for implementing a custom loss function:

Write a normal function
Extend nn.Module where the forward method wraps the function you’d implement for 1
Extend nn.autograd.Function where the forward method is as in 2 but you explicitly implement the backward method yourself.

My understanding is that 1and 2 are equivalent (though examples where you pass parameters 2 seems more natural).
Questions:

It seems that 3 is only useful if you are using operations where pytorch doesn’t define backward.  Is there a list of operations that have (or a list of operations that don’t have) backward defined?
Is my description of 1-3 above correct or have I missed something