GroupedBiasAddGrad
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR/Ascend 950DT | × |
| Atlas A3 训练系列产品/Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品/Atlas A2 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | × |
| Atlas 推理系列产品 | × |
| Atlas 训练系列产品 | × |
功能说明
-
算子功能:对分组通道的偏置梯度进行归约求和。
-
计算公式:
(1) 有可选输入groupIdxOptional,且groupIdxType为0时:
out(G,H)={∑i=groupIdxOptional(j−1)groupIdxOptional(j) gradY(i,H),1≤j≤G−1∑i=0groupIdxOptional(j)gradY(i,H),j=0out(G,H) = \begin{cases} \displaystyle \sum_{i = \mathrm{groupIdxOptional}(j-1)}^{\mathrm{groupIdxOptional}(j)} \!\! \mathrm{gradY}(i, H), & 1 \leq j \leq G-1 \\[8pt] \displaystyle \sum_{i = 0}^{\mathrm{groupIdxOptional}(j)} \mathrm{gradY}(i, H), & j = 0 \end{cases}
(2) 有可选输入groupIdxOptional,且groupIdxType为1时:
groupIdx(i)=∑i=0jgroupIdxOptional(j),j=0...GgroupIdx(i) = \sum_{i=0}^{j} groupIdxOptional(j), j=0...G
out(G,H)={∑i = groupIdx(j−1)groupIdx(j) gradY(i,H),1≤j≤G−1∑i = 0groupIdx(j)gradY(i,H),j=0out(G,H) = \left\{ \begin{aligned} &\sum_{i\,=\,\mathrm{groupIdx}(j-1)}^{\mathrm{groupIdx}(j)} \!\! \mathrm{gradY}(i, H), && 1 \leq j \leq G-1 \\ &\sum_{i\,=\,0}^{\mathrm{groupIdx}(j)} \mathrm{gradY}(i, H), && j = 0 \end{aligned} \right.
其中,gradY共2维,H表示gradY最后一维的大小,G表示groupIdxOptional第0维的大小,即groupIdxOptional有G个数,groupIdxOptional(j)表示第j个数的大小,计算后out为2维,shape为(G, H)。
(3) 无可选输入groupIdxOptional时:
out(G,H)=∑i=0CgradY(G,i,H)out(G, H) = \sum_{i=0}^{C} gradY(G, i, H)
其中,gradY共3维,G, C, H依次表示gradY第0-2维的大小,计算后out为2维,shape为(G, H)。
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| gradY | 输入 | 反向传播梯度,公式中的输入gradY。支持非连续的Tensor。 | FLOAT16、BFLOAT16、FLOAT | ND |
| groupIdxOptional | 可选输入 | 每个分组结束位置,公式中输入的groupIdxOptional。最多支持2048个组,支持非连续的Tensor。 | INT32、INT64 | ND |
| out | 输出 | bias的梯度,公式中的out。 | FLOAT16、BFLOAT16、FLOAT | ND |
| groupIdxType | 可选属性 | 表示groupIdx的类型。支持的值为: 0:表示groupIdxOptional中的值为每个group的结束索引。 1:表示groupIdxOptional中的值为每个group的大小。 |
Int | - |
约束说明
- 当存在输入group_idx时,需要满足下列约束:
- 需要确保张量的值不超过INT32的最大值并且是非负的。
- grad_y仅支持 2 维形状。
- 当不存在输入group_idx时,grad_y仅支持 3 维形状。
- 当存在输入group_idx并且group_idx_type为0时,需要确保张量数据按升序排列,最后一个数值等于grad_y的第0维度的大小。
- 当存在输入group_idx并且group_idx_type为1时,必须确保张量数据的总和必须等于grad_y的第0维度的大小。
调用说明
| 调用方式 | 调用样例 | 说明 |
|---|---|---|
| aclnn调用 | test_aclnn_grouped_bias_add_grad | 通过aclnnGroupedBiasAddGrad接口方式调用GroupedBiasAddGrad算子。 |
| 图模式调用 | test_geir_grouped_bias_add_grad | 通过算子IR构图方式调用GroupedBiasAddGrad算子。 |