文件最后提交记录最后更新时间
1 个月前
1 个月前
1 个月前
1 个月前
1 个月前
README

SyncBatchNormGatherStatsFused

产品支持情况

产品 是否支持
Ascend 950PR/Ascend 950DT
Atlas A3 训练系列产品/Atlas A3 推理系列产品 ×
Atlas A2 训练系列产品/Atlas A2 推理系列产品 ×
Atlas 200I/500 A2 推理产品 ×
Atlas 推理系列产品 ×
Atlas 训练系列产品 ×

功能说明

  • 算子功能:SyncBatchNormGatherStatsFused算子用于计算在BatchNormTraining过程中的全局的均值和全局标准差倒数,以及更新全局方差。

  • 计算公式:

    countsSum=∑n=0N−1counts[n]countsSum = \sum_{n=0}^{N-1} counts[n]

    var[n,c]=1invstd[n,c]2−epsvar[n,c] = \frac{1}{invstd[n,c]^2} - eps

    meanDiff[n,c]=mean[n,c]−meanAll[c]meanDiff[n,c] = mean[n,c] - meanAll[c]

    varSum[c]=∑n=0N−1(var[n,c]+meanDiff[n,c]2)×counts[n]varSum[c] = \sum_{n=0}^{N-1} (var[n,c] + meanDiff[n,c]^2) \times counts[n]

    unbiasedVar[c]=varSum[c]countsSum−1unbiasedVar[c] = \frac{varSum[c]}{countsSum - 1}

    meanAll[c]=∑n=0N−1mean[n,c]×counts[n]countsSummeanAll[c] = \frac{\sum_{n=0}^{N-1} mean[n,c] \times counts[n]}{countsSum}

    invstdAll[c]=1varSum[c]countsSum+epsinvstdAll[c] = \frac{1}{\sqrt{\frac{varSum[c]}{countsSum} + eps}}

    runningMeanOut[c]=(1−momentum)×runningMean[c]+momentum×meanAll[c]runningMeanOut[c] = (1 - momentum) \times runningMean[c] + momentum \times meanAll[c]

    runningVarOut[c]=(1−momentum)×runningVar[c]+momentum×unbiasedVar[c]runningVarOut[c] = (1 - momentum) \times runningVar[c] + momentum \times unbiasedVar[c]

    公式中的n为首轴,c为尾轴。

参数说明

参数名 输入/输出/属性 描述 数据类型 数据格式
mean 输入 表示输入数据均值,对应公式中的`mean`。 FLOAT32、FLOAT16、BFLOAT16 ND
invstd 输入 表示输入数据标准差倒数,对应公式中的`invstd`。 FLOAT32、FLOAT16、BFLOAT16 ND
runningMean 输入 表示计算过程中的均值,对应公式中的`runningMean`。 FLOAT32、FLOAT16、BFLOAT16 ND
runningVar 输入 表示计算过程中的方差,对应公式中的`runningVar`。 FLOAT32、FLOAT16、BFLOAT16 ND
counts 输入 表示输入数据元素的个数,对应公式中的`counts`。 FLOAT32 ND
momentum 可选属性 runningVar的指数平滑参数,默认值0.01。 FLOAT32 -
eps 属性 表示添加到方差中的值,以避免出现除以零的情况。对应公式中的`eps` FLOAT32 -
meanAll 输出 表示所有卡上数据的均值,对应公式中的`meanAll`。 FLOAT32、FLOAT16、BFLOAT16 ND
invstdAll 输出 表示所有卡上数据的标准差的倒数,对应公式中的`invstdAll`。 FLOAT32、FLOAT16、BFLOAT16 ND
runningMeanOut 输出 更新后的均值,对应公式中的`runningMeanOut`。 FLOAT32、FLOAT16、BFLOAT16 ND
runningVarOut 输出 更新后的方差,对应公式中的`runningVarOut`。 FLOAT32、FLOAT16、BFLOAT16 ND

约束说明

调用说明

调用方式 样例代码 说明
aclnn接口 test_aclnn_BatchNormGatherStatsWithCounts 通过aclnnBatchNormGatherStatsWithCounts接口方式调用SyncBatchNormGatherStatsFused算子。