Spaces:
Sleeping
Sleeping
| # ------------------------------------------------------------------------------ | |
| # The code is from GLPDepth (https://github.com/vinvino02/GLPDepth). | |
| # For non-commercial purpose only (research, evaluation etc). | |
| # ------------------------------------------------------------------------------ | |
| import torch | |
| import torch.nn as nn | |
| class SiLogLoss(nn.Module): | |
| def __init__(self, lambd=0.5): | |
| super().__init__() | |
| self.lambd = lambd | |
| def forward(self, pred, target): | |
| valid_mask = (target > 0).detach() | |
| diff_log = torch.log(target[valid_mask]) - torch.log(pred[valid_mask]) | |
| loss = torch.sqrt(torch.pow(diff_log, 2).mean() - | |
| self.lambd * torch.pow(diff_log.mean(), 2)) | |
| return loss | |