INNER CODE UNIT · Python
forward
nianticlabs/simplerecon · losses.py:46
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
class NormalsLoss(nn.Module):
def forward(self, normals_gt_b3hw: Tensor, normals_pred_b3hw: Tensor) -> Tensor:
normals_mask_b1hw = torch.logical_and(
normals_gt_b3hw.isfinite().all(dim=1, keepdim=True),
normals_pred_b3hw.isfinite().all(dim=1, keepdim=True))