output2 is a scalar variable (e.g a loss function), therefore you can call .backwards() on it.
alpha/beta/gamma/whatever could be a vector-valued or matrix-valued variable, which means you can’t call .backwards() on it unless you loop through all elements in the tensor, which is not feasible.