INNER CODE UNIT · Python
forward
nianticlabs/simplerecon · losses.py:17
def forward(self, depth_gt: Tensor, depth_pred: Tensor) -> Tensor:
# Create the gradient pyramids
depth_pred_pyr = pyrdown(depth_pred, self.num_scales)
depth_gtn_pyr = pyrdown(depth_gt, self.num_scales)
grad_loss = torch.tensor(0, dtype=depth_gt.dtype, device=depth_gt.device)
for depth_pred_down, depth_gtn_down in zip(depth_pred_pyr, depth_gtn_pyr):
depth_gtn_grad = kornia.filters.spatial_gradient(depth_gtn_down)
mask_down_b = depth_gtn_grad.isfinite().all(dim=1, keepdim=True)
depth_pred_grad = kornia.filters.spatial_gradient(
depth_pred_down).masked_select(mask_down_b)
grad_error = torch.abs(depth_pred_grad -
depth_gtn_grad.masked_select(mask_down_b))