已关闭
[Bug-Report|缺陷反馈]: ONNX插件解析零值属性异常 #3270
clinglai0517创建于  25 天前关闭于  25 天前
clinglai0517成员
25 天前 创建

一、问题描述 (必填)

GE 将 ONNX 标量属性序列化为 JSON 时,会省略值为 0 的 i 字段,仅保留属性的 name 和 type。ops-math 中部分已迁移到 ParseParamsByOperatorFn 的插件仍以值字段是否存在判断属性是否存在,造成以下问题:

  • Correlation:groups=0 被错误回退为默认值 1。
  • ReverseSequence:batch_axis=0 / time_axis=0 未按显式属性处理。
  • NPUOneHot:num_classes、depth、on_value、off_value 为 0 时被跳过;其中 depth=0 还会被误判为属性缺失。

二、环境信息 (可选)

  • 昇腾硬件型号:Ascend 910B3
  • CANN 版本:9.0.0
  • 操作系统:Linux(容器环境)
  • 代码基线:ops-math master 5ec844df3

三、重现步骤 (可选)

  1. 构造带显式零值标量属性的 ONNX 节点。
  2. 经 GE 序列化后,属性 JSON 形如 {"attribute":[{"name":"groups","type":2}]},零值对应的 i 字段被省略。
  3. 调用对应插件的 ParseParamsByOperatorFn。
  4. 修复前会出现回退算子默认值或误判必需属性缺失。

四、预期结果 (可选)

  • 属性 name 存在而 i 字段缺失时,按 ONNX protobuf 标量默认值 0 处理。
  • 整个属性缺失时,仍保持各算子原有默认值和必需属性校验语义。
  • 为上述场景补充 framework UT,并通过 ONNX 插件构建、op_host UT 和 pre-commit 检查。

💡 备注(选填)

同类问题参考 ops-nn PR:https://gitcode.com/cann/ops-nn/pull/10783

likedislike
Cclinglai0517成员
25 天前 添加了label:bug-report
Cclinglai0517成员
25 天前 关联了pull request:fix: ONNX插件解析零值属性并补全protobuf解耦
Cclinglai0517成员
25 天前 修改了issue 的描述
Cclinglai0517成员
25 天前 修改标题为 “[Bug-Report|缺陷反馈]: ONNX插件解析零值属性异常”,原标题为“[Bug-Report|缺陷反馈]: ONNX插件解析零值属性异常且protobuf解耦不完整”
Cclinglai0517成员
25 天前 修改了issue 的描述
CANN-robotCANN-robot成员
25 天前 关闭了 issue
CANN-robotCANN-robot成员
25 天前 添加了label:resolved