Thanks for sending an issue! Please fill in the following template to help quickly solve your problem.
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] 解析和访问数据。
[B,M,4]
[B]
transpose_box=true
[B,4,M]
[B,8]
[B,C,N]
此外,Batch 对输入 rank、batch 的强校验,以及 SortedNMS 对 rank 和 ShapeRange 已知上界的强校验,可能拒绝旧通路可继续推导的动态输入。本 Issue 跟踪这些推导与旧有效协议的兼容问题,不改变 NMS 筛选算法。
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)
[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
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 / 必填)
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 / 必填)
Related log / screenshot / 日志 / 截图 (Mandatory / 必填)
Special notes for this issue/备注 (Optional / 选填)