From 3b1174b975a36b8f9d3ac7c117d04ade0da6654a Mon Sep 17 00:00:00 2001 From: "Shi-Yao, ZHOU" Date: Sun, 22 Feb 2026 19:53:50 +0800 Subject: [PATCH 1/2] Refactor label handling in cross_entropy_loss.py --- mmdet/models/losses/cross_entropy_loss.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/mmdet/models/losses/cross_entropy_loss.py b/mmdet/models/losses/cross_entropy_loss.py index 49fac7743ce..e7e6d2dc288 100644 --- a/mmdet/models/losses/cross_entropy_loss.py +++ b/mmdet/models/losses/cross_entropy_loss.py @@ -39,6 +39,11 @@ def cross_entropy(pred, """ # The default value of ignore_index is the same as F.cross_entropy ignore_index = -100 if ignore_index is None else ignore_index + + # label[0] are categorical labels of images + if isinstance(label, tuple) and len(label) > 1: + label = label[0] + # element-wise losses loss = F.cross_entropy( pred, @@ -116,6 +121,10 @@ def binary_cross_entropy(pred, """ # The default value of ignore_index is the same as F.cross_entropy ignore_index = -100 if ignore_index is None else ignore_index + + # label[0] are categorical labels of images + if isinstance(label, tuple) and len(label) > 1: + label = label[0] if pred.dim() != label.dim(): label, weight, valid_mask = _expand_onehot_labels( @@ -191,6 +200,11 @@ def mask_cross_entropy(pred, assert ignore_index is None, 'BCE loss does not support ignore_index' # TODO: handle these two reserved arguments assert reduction == 'mean' and avg_factor is None + + # label[0] are categorical labels of images + if isinstance(label, tuple) and len(label) > 1: + label = label[0] + num_rois = pred.size()[0] inds = torch.arange(0, num_rois, dtype=torch.long, device=pred.device) pred_slice = pred[inds, label].squeeze(1) From 4b9c9ef1d73eab5f2773c2f4cadc8cfdf42eaa67 Mon Sep 17 00:00:00 2001 From: "Shi-Yao, ZHOU" Date: Sun, 22 Feb 2026 20:30:06 +0800 Subject: [PATCH 2/2] Clean up whitespace in cross_entropy_loss.py Removed unnecessary blank lines in the cross_entropy_loss.py file. --- mmdet/models/losses/cross_entropy_loss.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mmdet/models/losses/cross_entropy_loss.py b/mmdet/models/losses/cross_entropy_loss.py index e7e6d2dc288..ab149852f6f 100644 --- a/mmdet/models/losses/cross_entropy_loss.py +++ b/mmdet/models/losses/cross_entropy_loss.py @@ -39,11 +39,11 @@ def cross_entropy(pred, """ # The default value of ignore_index is the same as F.cross_entropy ignore_index = -100 if ignore_index is None else ignore_index - + # label[0] are categorical labels of images if isinstance(label, tuple) and len(label) > 1: label = label[0] - + # element-wise losses loss = F.cross_entropy( pred, @@ -121,7 +121,7 @@ def binary_cross_entropy(pred, """ # The default value of ignore_index is the same as F.cross_entropy ignore_index = -100 if ignore_index is None else ignore_index - + # label[0] are categorical labels of images if isinstance(label, tuple) and len(label) > 1: label = label[0]