PS: If I switch around the loss to:
loss = torch.mean((output.detach() - output)+ftn)
then the opposite occurs, the outputs simply increase according to the learning rate and momentum, with no influence from the discovered value of ftn according to the three outputs