ReduceStdV2
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR/Ascend 950DT | √ |
| Atlas A3 训练系列产品/Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品/Atlas A2 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | × |
| Atlas 推理系列产品 | √ |
| Atlas 训练系列产品 | √ |
功能说明
-
算子功能:计算指定维度(dim)的标准差和均值,这个dim可以是单个维度、维度列表或者None。
-
计算公式: 假设 dim 为 ii,则对该维度进行计算。NN为该维度的 shape。取 xix_{i},求出该维度上的平均值 xiˉ\bar{x_{i}}。
std=1max(0,N−δN)∑j=0N−1(xij−xiˉ)2std = \sqrt{\frac{1}{max(0, N - \delta N)}\sum_{j=0}^{N-1}(x_{ij}-\bar{x_{i}})^2}
当
keepdim = true时,reduce 后保留该维度,且输出 shape 中该维度值为 1;当keepdim = false时,不保留。
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x | 输入 | 待进行ReduceStdV2计算的输入Tensor,公式中的x。 | FLOAT、FLOAT16、BFLOAT16 | ND |
| dim | 属性 | 参与Reduce计算的维度,公式中的i。默认值为空列表,表示对所有维度做Reduce。 | LIST_INT | - |
| correction | 属性 | 修正值,公式中的delta。 | INT64 | - |
| keepdim | 属性 | 是否在输出张量中保留输入张量的维度。 | BOOL | - |
| is_mean_out | 属性 | 是否输出均值。true表示输出mean,false表示不输出mean。 | BOOL | - |
| std | 输出 | ReduceStdV2计算的标准差出参,公式中的std。 | FLOAT、FLOAT16、BFLOAT16 | ND |
| mean | 输出 | ReduceStdV2计算的均值出参,公式中的平均值。 | FLOAT、FLOAT16、BFLOAT16 | ND |
- Atlas 训练系列产品、Atlas 推理系列产品: 不支持BFLOAT16。
约束说明
dim中的每个维度值必须在[-rank(x), rank(x))范围内,支持负数维度;同一维度归一化后不能重复。- 当
dim为空列表时,对x的所有维度进行Reduce。 std和mean的shape由dim和keepdim推导:keepdim = true时保留被Reduce维度且维度值为1,keepdim = false时删除被Reduce维度。- aclnnStd接口中
out的shape必须与dim和keepdim推导结果一致。 - aclnnStd接口中
x和out的数据类型均需在支持列表内,且x的数据类型需支持转换为out的数据类型;ReduceStdV2图算子的std、mean与x支持相同的数据类型范围。 - 空Tensor场景返回NaN;当被Reduce维度的元素数
shapeProd为1且shapeProd <= correction时返回NaN;当correction > 1且shapeProd <= correction时返回Inf。
调用说明
| 调用方式 | 调用样例 | 说明 |
|---|---|---|
| aclnn调用 | test_aclnn_std.cpp | 通过aclnnStd接口方式调用ReduceStdV2算子。 |