I am trying to implement Adaptive Loss function, which has the formulas

here my code
 def Adaptive_loss(preds, labels, sigma):
     l2 = (1+sigma)*(torch.mean(preds - labels)**2)
     l1 = sigma + torch.mean(torch.abs(preds - labels))
     return l2/l1

The issue I got very very worse performance compared with using MSE loss
Could anyone check if I have any mistake