Skip to content

Commit 3dd1d39

Browse files
author
sfluegel
committed
fix semantic loss balancing
1 parent e06b9e6 commit 3dd1d39

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

chebai/loss/semantic.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -70,13 +70,15 @@ def _calculate_implication_loss(self, l, r):
7070
math.pow(1 + self.eps, 1 / self.pos_scalar)
7171
- math.pow(self.eps, 1 / self.pos_scalar)
7272
)
73-
r = torch.pow(r, self.pos_scalar)
73+
one_min_r = torch.pow(1 - r, self.pos_scalar)
74+
else:
75+
one_min_r = 1 - r
7476
if self.tnorm == "product":
75-
individual_loss = l * (1 - r)
77+
individual_loss = l * one_min_r
7678
elif self.tnorm == "xu19":
77-
individual_loss = -torch.log(1 - l * (1 - r))
79+
individual_loss = -torch.log(1 - l * one_min_r)
7880
elif self.tnorm == "lukasiewicz":
79-
individual_loss = torch.relu(l - r)
81+
individual_loss = torch.relu(l + one_min_r - 1)
8082
else:
8183
raise NotImplementedError(f"Unknown tnorm {self.tnorm}")
8284

0 commit comments

Comments
 (0)