已关闭
[Bug-Report|缺陷反馈]: BatchMultiClassNonMaxSuppression 与 SortedNMS InferShape 旧协议兼容问题 #888
黄晓彬创建于  12 天前关闭于  12 天前
黄晓彬成员
12 天前 创建

Thanks for sending an issue! Please fill in the following template to help quickly solve your problem.

Describe the current behavior / 问题描述 (Mandatory / 必填)

BatchMultiClassNonMaxSuppression 新 InferShape 固定输出 boxes [B,M,4]、count [B],与旧 GE 融合内部 transpose_box=true 所需的 boxes [B,4,M]、count [B,8] 不一致。950 实现的 true 分支还需同步按 scores [B,C,N] 解析和访问数据。

此外,Batch 对输入 rank、batch 的强校验,以及 SortedNMS 对 rank 和 ShapeRange 已知上界的强校验,可能拒绝旧通路可继续推导的动态输入。本 Issue 跟踪这些推导与旧有效协议的兼容问题,不改变 NMS 筛选算法。

Environment / 环境信息 (Mandatory / 必填)

  • 问题反馈:A2 上的 BatchMultiClassNonMaxSuppression用例执行失败
  • 版本:CANN 最新周版本

Steps to reproduce the issue / 重现步骤 (Mandatory / 必填)

1 执行 BatchMultiClassNonMaxSuppression 用例

import torch
import torch_npu
import numpy as np
a = np.fromfile(
    "batchnms_L0_xlsx_fp16_1_100_50_4_1_100_50_fp16_0d0_2d0_0d0_1d0_u_ND_0d05_0d5_300_200_input_0.bin",
    np.float16).reshape(1, 100, 50, 4)
b = np.fromfile("batchnms_L0_xlsx_fp16_1_100_50_4_1_100_50_fp16_0d0_2d0_0d0_1d0_u_ND_0d05_0d5_300_200_input_1.bin",
    np.float16).reshape(1,100,50)
score_threshold = 0.05
iou_threshold = 0.5
max_size_per_class = 300
max_total_size = 200
a_npu = torch.from_numpy(a).npu()
b_npu = torch.from_numpy(b).npu()
output_data1, output_data2, output_data3, output_data4 = torch_npu.npu_batch_nms(a_npu, b_npu,
                                                                                 score_threshold,
                                                                                     iou_threshold,
                                                                                     max_size_per_class,
                                                                                     max_total_size)

Describe the expected behavior / 预期结果 (Mandatory / 必填)

  • BatchMultiClassNonMaxSuppression 用例在A2上面跑通
[ERROR] APP(2780633,python3):2026-09-02-11:20:25.150.213 2780795 OpParamMaker.cpp:printErrorLog:442: "[PTA]:---OpName---BatchMultiClassNonMaxSuppression"
[ERROR] APP(2780633,python3):2026-09-02-11:20:25.150.244 2780795 OpParamMaker.cpp:printErrorLog:460: "[PTA]:InputDesc[0]: DescType = ACL_FLOAT16, DescFormat = ACL_FORMAT_NCHW, DescShape = [1, 100, 50, 4]"
[ERROR] APP(2780633,python3):2026-09-02-11:20:25.150.249 2780795 OpParamMaker.cpp:printErrorLog:460: "[PTA]:InputDesc[1]: DescType = ACL_FLOAT16, DescFormat = ACL_FORMAT_ND, DescShape = [1, 100, 50]"
[DEBUG] APP(2780633,python3):2026-09-02-11:20:25.150.256 2780795 OpParamMaker.cpp:ExecFunc:568: "[PTA]:ExecFunc: Op BatchMultiClassNonMaxSuppression Run with aclopCompileAndExecute, ret = 500002."
[ERROR] APP(2780633,python3):2026-09-02-11:20:25.150.279 2780795 NPUQueue.cpp:ReadQueue:459: "[PTA]:---Thread---281470857703808: device = 0, write_idx = 1, read_idx = 0, status = 0, ret = 500002"
[INFO] APP(2780633,python3):2026-09-02-11:20:25.150.283 2780795 NPUQueue.cpp:ReadQueue:461: "[PTA]:ReadQueue: read failed, the current working operator name is BatchMultiClassNonMaxSuppression, device = 0, write_idx = 1, read_idx

Special notes for this issue/备注 (Optional / 选填)

likedislike
黄晓彬成员
12 天前 添加了label:bug-report
黄晓彬成员
12 天前 修改了issue 的描述
黄晓彬成员
12 天前 修改了issue 的描述
黄晓彬成员
12 天前 修改了issue 的描述
CANN-robotCANN-robot成员
12 天前 关闭了 issue
CANN-robotCANN-robot成员
12 天前 添加了label:resolved