aclnnAddLayerNormGrad
产品支持情况
功能说明
接口功能:LayerNorm是一种归一化方法,可以将网络层输入数据归一化到[0, 1]之间。LayerNormGrad算子是深度学习中用于反向传播阶段的一个关键算子,主要用于计算LayerNorm操作的梯度。AddLayerNormGrad算子是将Add和LayerNormGrad融合起来,减少搬入搬出操作。
计算公式:
正向公式:(D为reduce轴大小)
反向公式:
其中:
:
:
:
其中,当i=j时,=1;当i!=j时,=0。
:
其中,D为x中参加均值计算的数量。
:
化简后的:
函数原型
每个算子分为,必须先调用“aclnnAddLayerNormGradGetWorkspaceSize”接口获取计算所需workspace大小以及包含了算子计算流程的执行器,再调用“aclnnAddLayerNormGrad”接口执行计算。
[object Object]
[object Object]
aclnnAddLayerNormGradGetWorkspaceSize
参数说明:
[object Object]- [object Object]Atlas 推理系列产品[object Object]:参数
[object Object]、[object Object]、[object Object]、[object Object]、[object Object]、[object Object]的数据类型不支持BFLOAT16。
- [object Object]Atlas 推理系列产品[object Object]:参数
返回值:
第一段接口完成入参校验,出现以下场景时报错:
[object Object]
aclnnAddLayerNormGrad
约束说明
功能维度
- 数据类型支持
- [object Object]Atlas 推理系列产品[object Object]:dy、x1、x2、gamma、dsumOptional、dxOut支持FLOAT32、FLOAT16。
- [object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]、[object Object]Atlas A3 训练系列产品/Atlas A3 推理系列产品[object Object]:dy、x1、x2、gamma、dsumOptional、dxOut支持FLOAT32、FLOAT16、BFLOAT16。
- rstd、mean、dgammaOut、dbetaOut支持:FLOAT32。
- 数据格式支持:ND。
- 数据类型支持
未支持类型说明
DOUBLE:指令不支持DOUBLE。
边界值场景说明
- 当输入是Inf时,输出为Inf。
- 当输入是NaN时,输出为NaN。
确定性计算:
- aclnnAddLayerNormGrad默认非确定性实现,支持通过aclrtCtxSetSysParamOpt开启确定性。
调用示例
[object Object]