NpuNMSWithMask 与 PSROIPoolingV2 的 ONNX 插件通过 ParseParamsByOperatorFn 读取 GE 序列化的 attribute JSON。GE 在 ONNX 标量 FLOAT/INT 值为 0 时会省略对应的 f/i 字段,但保留属性的 name 和 type。
NpuNMSWithMask
PSROIPoolingV2
ParseParamsByOperatorFn
f
i
name
type
当前实现未正确处理该规则:
iou_threshold
iou_threshold=0
0.5
spatial_scale
output_dim
group_size
该行为与旧 protobuf 接口中 attr.f()/attr.i() 对零值返回 0 的语义不一致。
attr.f()
attr.i()
cann/ops-cv
master
30bb9321509df27b06b9ea27e94b12b98b0827cc
cann/ops-nn
为 NpuNMSWithMask 构造 GE attribute JSON:
{"attribute":[{"name":"iou_threshold","type":1}]}
调用 ParseParamsNMSWithMask,读取目标算子的 iou_threshold。
ParseParamsNMSWithMask
为 PSROIPoolingV2 构造零值属性 JSON:
{"attribute":[{"name":"spatial_scale","type":1},{"name":"output_dim","type":2},{"name":"group_size","type":2}]}
调用 ParseOnnxParamsPSROIPoolingV2。
ParseOnnxParamsPSROIPoolingV2
插件应先依据属性 name 判断属性是否存在;当标量值字段 f/i 被省略时,应按 protobuf 默认语义解析为 0.0/0,而不是回退到算子的其他默认值或抛出 JSON 异常。非零属性、属性缺失和非法 JSON 的既有行为应保持不变。
0.0
0
修复前的可观察结果:
json.exception.type_error.302
FAILED
修复分支已增加零值回归测试;远端定向 op_host UT 共 9 个用例全部通过,完整 oponnx_plugin_cv 构建通过。
oponnx_plugin_cv
修复范围仅涉及 ONNX 插件属性解析与 framework UT,不修改算子 kernel、tiling、接口定义或正常非零属性语义。
Describe the current behavior / 问题描述 (Mandatory / 必填)
NpuNMSWithMask与PSROIPoolingV2的 ONNX 插件通过ParseParamsByOperatorFn读取 GE 序列化的 attribute JSON。GE 在 ONNX 标量 FLOAT/INT 值为 0 时会省略对应的f/i字段,但保留属性的name和type。当前实现未正确处理该规则:
NpuNMSWithMask仅在iou_threshold包含f字段时解析,显式传入iou_threshold=0会被误判为属性缺失并回退到默认值0.5。PSROIPoolingV2直接访问spatial_scale的f以及output_dim、group_size的i字段,零值场景会触发 JSON 类型异常,导致插件解析失败。该行为与旧 protobuf 接口中
attr.f()/attr.i()对零值返回 0 的语义不一致。Environment / 环境信息 (Mandatory / 必填)
cann/ops-cvmaster30bb9321509df27b06b9ea27e94b12b98b0827cccann/ops-nnPR #10783Steps to reproduce the issue / 重现步骤 (Mandatory / 必填)
为
NpuNMSWithMask构造 GE attribute JSON:{"attribute":[{"name":"iou_threshold","type":1}]}调用
ParseParamsNMSWithMask,读取目标算子的iou_threshold。为
PSROIPoolingV2构造零值属性 JSON:{"attribute":[{"name":"spatial_scale","type":1},{"name":"output_dim","type":2},{"name":"group_size","type":2}]}调用
ParseOnnxParamsPSROIPoolingV2。Describe the expected behavior / 预期结果 (Mandatory / 必填)
插件应先依据属性
name判断属性是否存在;当标量值字段f/i被省略时,应按 protobuf 默认语义解析为0.0/0,而不是回退到算子的其他默认值或抛出 JSON 异常。非零属性、属性缺失和非法 JSON 的既有行为应保持不变。Related log / screenshot / 日志 / 截图 (Mandatory / 必填)
修复前的可观察结果:
NpuNMSWithMask:显式零值被解析为默认值0.5。PSROIPoolingV2:缺少f/i时可能触发json.exception.type_error.302并返回FAILED。修复分支已增加零值回归测试;远端定向 op_host UT 共 9 个用例全部通过,完整
oponnx_plugin_cv构建通过。Special notes for this issue/备注 (Optional / 选填)
修复范围仅涉及 ONNX 插件属性解析与 framework UT,不修改算子 kernel、tiling、接口定义或正常非零属性语义。