昇腾社区首页
中文
注册
开发者
下载

aclnnBatchNormReduceBackward

产品支持情况

[object Object]undefined

功能说明

  • 接口功能:

    主要用于反向传播过程中计算BatchNorm操作的梯度,并进行一些中间结果的规约操作以优化计算效率。计算结果如下:

    • 计算损失函数l对缩放权重γ的梯度(lγ\frac{\partial l}{\partial γ})。
    • 计算损失函数l对偏移量β的梯度(lβ\frac{\partial l}{\partial β})。
    • 以损失函数l相对于输出(y[object Object]i[object Object])的偏差d[object Object]yi[object Object]推导计算lxi\frac{\partial l}{\partial x_i}所需的中间量sumDy和sumDyXmu。其中(lxi\frac{\partial l}{\partial x_i})为损失函数l相对于对应层各输入(x[object Object]i[object Object])的梯度。
  • 计算公式:

    gradWeight=lγ=i=0mlyi(xi)^=1σB2+epsi=0mlyi(xiμB)gradWeight = \frac{\partial l}{\partial γ} = \sum^m_{i=0} \frac{\partial l}{\partial y_i} \cdot \hat{(x_i)} = \frac{1}{{\sqrt{σ^2_B + eps}}} \cdot \sum^m_{i=0} \frac{\partial l} {\partial y_i} \cdot (x_i-μ_B) gradBias=lβ=i=0mlyigradBias = \frac{\partial l}{\partial β} = \sum^m_{i=0} \frac{\partial l}{\partial y_i} sumDy=sum(l,yi)=i=0mlyisumDy = sum(l, y_i) = \displaystyle \sum^m_{i=0} \frac{\partial l}{\partial y_i} sumDyXmu=sum(l,yi,xi,μB)=i=0mlyi(xiμB)sumDyXmu = sum(l, y_i, x_i, μ_B) = \displaystyle \sum^m_{i=0} \frac{\partial l}{\partial y_i} \cdot (x_i-μ_B)

函数原型

每个算子分为,必须先调用“aclnnBatchNormReduceBackwardGetWorkspaceSize”接口获取入参并根据流程计算所需workspace大小,再调用“aclnnBatchNormReduceBackward”接口执行计算。

[object Object]
[object Object]

aclnnBatchNormReduceBackwardGetWorkspaceSize

  • 参数说明:

    [object Object]
    • [object Object]Atlas 训练系列产品[object Object]、[object Object]Atlas 推理系列产品[object Object]:参数[object Object][object Object][object Object][object Object][object Object][object Object][object Object][object Object][object Object]的数据类型不支持BFLOAT16。
  • 返回值:

    aclnnStatus:返回状态码,具体参见

    第一段接口完成入参校验,出现以下场景时报错:

    [object Object]

aclnnBatchNormReduceBackward

  • 参数说明:

    [object Object]
  • 返回值:

    aclnnStatus:返回状态码,具体参见

约束说明

  • 当任一输入为空Tensor时,输出为空Tensor。
  • 确定性计算:
    • aclnnBatchNormReduceBackward默认确定性实现。

调用示例

示例代码如下,仅供参考,具体编译和执行过程请参考

[object Object]