OPERATOR RULE

BatchNormalization

独立形式的数据输入和输出都必须具有完整 Q/DQ,二者的量化参数相互独立。

quant-only · 融合 Pattern
规则定位quant-only · 融合 Pattern
量化判定数据输入和输出必须量化
数据类型激活 S8 / U8 / S16 / U16,per-tensor
示例状态4/4 PASS

数据类型与量化边界

数据类型概述
激活 S8 / U8 / S16 / U16,per-tensor
量化要求
数据输入和输出必须量化

规则原文

规则定位:quant-only / 融合 Pattern

本页是 ax quant spec 的逐算子展开。本页与统一规范冲突时,以统一规范为准。

规则

  • 独立形式的数据输入和输出都必须具有完整 Q/DQ,二者的量化参数相互独立。
  • 激活量化类型从 S8 对称或非对称、U8 非对称、S16 对称、U16 非对称中选择,粒度为 per-tensor。
  • scale、bias、mean 和 variance 必须全部是直接使用的 FP32 initializer,不量化。

本文档未增加限制的属性、shape 和输入形式,遵循模型声明 opset 下的 ONNX 语义。

与 Pattern 的关系

  • Conv 或 ConvTranspose 后接 BatchNormalization 时可以形成融合 Pattern,内部不插入 Q/DQ。
  • 融合 Pattern 的内部结果不得被外部节点消费。

MODEL EVIDENCE

可验证的 ONNX 案例

每张卡片直接嵌入对应的 Netron 模型图,进入页面后自动加载。

代表性结构

VERIFIED

覆盖该页面的主规则路径。

errors 0warnings 0nodes 5Q/DQ 2 / 2patterns none
Netron正在加载模型…
新窗口打开

S16 激活

VERIFIED

数据输入使用 S16 对称 per-tensor;输出沿用 U8 非对称。

errors 0warnings 0nodes 5Q/DQ 2 / 2patterns none
Netron正在加载模型…
新窗口打开

U16 激活

VERIFIED

数据输入使用 U16 非对称 per-tensor;输出沿用 U8 非对称。

errors 0warnings 0nodes 5Q/DQ 2 / 2patterns none
Netron正在加载模型…
新窗口打开

Conv + BatchNormalization Pattern

VERIFIED

展示 BatchNormalization 作为融合尾的合法结构。

errors 0warnings 0nodes 7Q/DQ 2 / 3patterns Conv+BatchNormalization
Netron正在加载模型…
新窗口打开