in common/nets/loss.py [0:0]
def forward(self, depthmap_out, depthmap_gt):
if isinstance(depthmap_out,list) and isinstance(depthmap_gt,list):
mask = [((depthmap_out[i] != 0) * (depthmap_gt[i] != 0)).float() for i in range(len(depthmap_out))]
loss = [self.smooth_l1_loss(depthmap_out[i], depthmap_gt[i]) * mask[i] for i in range(len(depthmap_out))]
loss = sum(loss)/len(loss)
elif isinstance(depthmap_out,torch.Tensor) and isinstance(depthmap_gt,torch.Tensor):
mask = ((depthmap_out != 0) * (depthmap_gt != 0)).float()
loss = self.smooth_l1_loss(depthmap_out, depthmap_gt) * mask
else:
assert 0
return loss