INNER CODE UNIT · Python
ScaleInvariantLoss
nianticlabs/simplerecon · losses.py:39
class ScaleInvariantLoss(jit.ScriptModule):
def __init__(self, si_lambda: float = 0.85):
super().__init__()
self.si_lambda = si_lambda
@jit.script_method
def forward(self, log_depth_gt: Tensor, log_depth_pred: Tensor) -> Tensor:
# Scale invariant loss from Eigen, implementation is from AdaBins
log_diff = log_depth_gt - log_depth_pred
si_loss = torch.sqrt(
(log_diff ** 2).mean() - self.si_lambda * (log_diff.mean() ** 2)
)
return si_loss