From 68064dd49941c1a86165f7a7cd18e352fbc0c4fc Mon Sep 17 00:00:00 2001 From: Anatoly Myachev Date: Tue, 15 Jul 2025 16:52:39 +0200 Subject: [PATCH 1/2] Cast `boxes` to double when `scores.dtype == torch.float64` --- detectron2/layers/nms.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/detectron2/layers/nms.py b/detectron2/layers/nms.py index 37ba18b2af..721ab66fa0 100644 --- a/detectron2/layers/nms.py +++ b/detectron2/layers/nms.py @@ -19,7 +19,11 @@ def batched_nms( # to decide whether to use coordinate trick or for loop to implement batched_nms. So we # just call it directly. # Fp16 does not have enough range for batched NMS, so adding float(). - return box_ops.batched_nms(boxes.float(), scores, idxs, iou_threshold) + if scores.dtype == torch.float64: + res = box_ops.batched_nms(boxes.double(), scores, idxs, iou_threshold) + else: + res = box_ops.batched_nms(boxes.float(), scores, idxs, iou_threshold) + return res # Note: this function (nms_rotated) might be moved into From aa1ce37ccc6bde4ab0b50b6ac8bc04b2a17c99a2 Mon Sep 17 00:00:00 2001 From: Anatoly Myachev Date: Tue, 5 Aug 2025 14:11:19 +0200 Subject: [PATCH 2/2] Update detectron2/layers/nms.py --- detectron2/layers/nms.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/detectron2/layers/nms.py b/detectron2/layers/nms.py index 721ab66fa0..5873a481f5 100644 --- a/detectron2/layers/nms.py +++ b/detectron2/layers/nms.py @@ -19,11 +19,8 @@ def batched_nms( # to decide whether to use coordinate trick or for loop to implement batched_nms. So we # just call it directly. # Fp16 does not have enough range for batched NMS, so adding float(). - if scores.dtype == torch.float64: - res = box_ops.batched_nms(boxes.double(), scores, idxs, iou_threshold) - else: - res = box_ops.batched_nms(boxes.float(), scores, idxs, iou_threshold) - return res + boxes_value = boxes.double() if scores.dtype == torch.float64 else boxes.float() + return box_ops.batched_nms(boxes_value, scores, idxs, iou_threshold) # Note: this function (nms_rotated) might be moved into