INNER CODE UNIT · Python
log_diff
nianticlabs/simplerecon · losses.py:49
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))
normals_pred_b3hw = normals_pred_b3hw.masked_fill(~normals_mask_b1hw, 1.0)
normals_gt_b3hw = normals_gt_b3hw.masked_fill(~normals_mask_b1hw, 1.0)