From 9a671e48fba364cc4c268348fec33cb0b72a9fc0 Mon Sep 17 00:00:00 2001 From: liuhw <71241939+dflhw@users.noreply.github.com> Date: Wed, 15 Mar 2023 23:07:41 +0800 Subject: [PATCH] [Fix] Prevent divide-by-zero error on Ascend device for bbox_overlaps (#2644) --- mmcv/ops/csrc/pytorch/npu/bbox_overlaps_npu.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/mmcv/ops/csrc/pytorch/npu/bbox_overlaps_npu.cpp b/mmcv/ops/csrc/pytorch/npu/bbox_overlaps_npu.cpp index 667d47125..ebe190f7e 100644 --- a/mmcv/ops/csrc/pytorch/npu/bbox_overlaps_npu.cpp +++ b/mmcv/ops/csrc/pytorch/npu/bbox_overlaps_npu.cpp @@ -12,6 +12,10 @@ void bbox_overlaps_npu(const Tensor bboxes1, const Tensor bboxes2, Tensor ious, if (mode == 1) { modeStr = "iof"; } + float offset_ = 1; + if (offset == 0) { + offset_ = 0.01; + } at::Tensor bboxes = at::ones_like(bboxes2); at::Tensor gtboxes = at::ones_like(bboxes1); bboxes = aligned ? bboxes2.transpose(0, 1) : bboxes2; @@ -22,7 +26,7 @@ void bbox_overlaps_npu(const Tensor bboxes1, const Tensor bboxes2, Tensor ious, .Input(gtboxes) .Output(ious) .Attr("mode", modeStr) - .Attr("eps", (float)offset) + .Attr("eps", offset_) .Attr("aligned", aligned) .Run(); }