BNInferGrad 用于计算 Batch Normalization 推理模式下输入的反向梯度。当前需要为该算子补充 Ascend 950 平台的 AscendC 实现,打通算子定义、图推导、Host Tiling、Kernel、GEIR 示例、测试与文档链路。
计算公式如下:
x_backprop=grads×scalebatch_variance+epsilonx\_backprop = grads \times \frac{scale}{\sqrt{batch\_variance + epsilon}} x_backprop=grads×batch_variance+epsilonscale
其中 scale 和 batch_variance 沿 grads 的 C 维广播。
scale
batch_variance
grads
Vector 相关需求。
FLOAT16
FLOAT
BFLOAT16
epsilon
0.0001
x_backprop
RANK_4
RANK_8
BnInferGradKernel
Background(背景信息)
BNInferGrad 用于计算 Batch Normalization 推理模式下输入的反向梯度。当前需要为该算子补充 Ascend 950 平台的 AscendC 实现,打通算子定义、图推导、Host Tiling、Kernel、GEIR 示例、测试与文档链路。
计算公式如下:
x_backprop=grads×batch_variance+epsilonscale
其中
scale和batch_variance沿grads的 C 维广播。Origin(信息来源)
Vector 相关需求。
Benefit / Necessity(价值/作用)
FLOAT16、FLOAT、BFLOAT16三种梯度数据类型以及 2D~5D 输入。Design(设计方案)
1. 功能规格
grads:2D~5D ND 张量,支持FLOAT16、FLOAT、BFLOAT16。scale:一维FLOAT张量,长度必须等于grads的 C 维。batch_variance:一维FLOAT张量,长度必须等于grads的 C 维。epsilon:可选FLOAT属性,默认值为0.0001。x_backprop:shape 和数据类型与grads保持一致。2. 算子定义与图推导
3. Host Tiling
RANK_4TilingKey,rank 5 使用RANK_8TilingKey。gradsrank、scale/batch_variancerank 及通道长度一致性。4. AscendC Kernel
BnInferGradKernel模板实现。scale和batch_variance。5. 测试与文档
RANK_4、RANK_8数值校验。Acceptance Criteria(验收标准)
FLOAT16、FLOAT、BFLOAT16梯度数据类型。Related PR(关联 PR)