If I had a network which output two values a and b
a, b = model(x)
loss = ((a - y) ** 2).mean() # part one
loss += (a.detach() * b).mean() # part two

In part one, the mean squared error would only have an effect on the parameters with respect to the output variable a
In part two of the loss function, it would only affect the parameters with respect to the output variable b
So in effect I can define a loss function which depends on an output variable, but where the network will only optimize for the attached variable. Is this correct, or did I miss something?