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算子。