From 9e91da4ac68591b8666ea1aa523d77a7e9d2155a Mon Sep 17 00:00:00 2001 From: Andrew White Date: Mon, 27 Jul 2026 20:47:46 -0500 Subject: [PATCH] fix: ConfLoss returns Python int 0 for empty valid masks --- dust3r/losses.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dust3r/losses.py b/dust3r/losses.py index 4f8febf..f947781 100644 --- a/dust3r/losses.py +++ b/dust3r/losses.py @@ -232,8 +232,8 @@ def compute_loss(self, gt1, gt2, pred1, pred2, **kw): conf_loss2 = loss2 * conf2 - self.alpha * log_conf2 # average + nan protection (in case of no valid pixels at all) - conf_loss1 = conf_loss1.mean() if conf_loss1.numel() > 0 else 0 - conf_loss2 = conf_loss2.mean() if conf_loss2.numel() > 0 else 0 + conf_loss1 = conf_loss1.mean() if conf_loss1.numel() > 0 else conf_loss1.new_zeros(()) + conf_loss2 = conf_loss2.mean() if conf_loss2.numel() > 0 else conf_loss2.new_zeros(()) return conf_loss1 + conf_loss2, dict(conf_loss_1=float(conf_loss1), conf_loss2=float(conf_loss2), **details)