From b870e4b4510681a91e78ab91718fa30ea2bfb78c Mon Sep 17 00:00:00 2001
From: "Daniel.Frisinghelli" <daniel.frisinghelli@eurac.edu>
Date: Fri, 15 Oct 2021 14:26:15 +0200
Subject: [PATCH] Changed computation of Weibull NLL.

---
 climax/core/loss.py | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/climax/core/loss.py b/climax/core/loss.py
index c2cc811..c747989 100644
--- a/climax/core/loss.py
+++ b/climax/core/loss.py
@@ -148,10 +148,15 @@ class BernoulliWeibullLoss(BernoulliLoss):
         loss_bern = torch.log(1 - p_pred[mask_p] + self.epsilon)
 
         # Weibull contribution
+        # loss_weib = (torch.log(p_pred[~mask_p] + self.epsilon) +
+        #              torch.log(shape + self.epsilon) -
+        #              shape * torch.log(scale + self.epsilon) +
+        #              (shape - 1) * torch.log(y_weib + self.epsilon) -
+        #              torch.pow(y_weib / (scale + self.epsilon), shape)
+        #              )
         loss_weib = (torch.log(p_pred[~mask_p] + self.epsilon) +
-                     torch.log(shape + self.epsilon) -
-                     shape * torch.log(scale + self.epsilon) +
-                     (shape - 1) * torch.log(y_weib + self.epsilon) -
+                     torch.log(shape / (scale + self.epsilon)) -
+                     (shape - 1) * torch.log(y_weib / (scale + self.epsilon)) -
                      torch.pow(y_weib / (scale + self.epsilon), shape)
                      )
 
-- 
GitLab