RoiPoolingGradWithArgMax

产品支持情况

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

功能说明

  • 算子功能:实现RoiPoolingWithArgMax的反向。遍历每个ROI的池化结果,将feature map坐标上的反向梯度贡献累加,即完成整张图上的反向计算。

  • 计算公式:

    ∂L∂xi=∑r∑j[i=i∗(r,j)]∂L∂yrj\frac{\partial L}{\partial x_i} = \sum_{r}\sum_{j}[i = i^*(r,j)]\frac{\partial L}{\partial y_{rj}}

    其中,

    [i=i∗(r,j)]={1,i∗(r,j)≥10,otherwise[i = i^*(r,j)] = \begin{cases} 1, & i^*(r,j) \geq 1 \\ 0, & otherwise \end{cases}

    判决函数[i = i^*(r,j)]表示i节点是否被候选区域r的第j个输出节点选为最大值输出

参数说明

参数名 输入/输出/属性 描述 数据类型 数据格式
grad 输入 输入特征图的梯度。 FLOAT32、FLOAT16 ND
x 输入 输入特征图。 FLOAT32、FLOAT16 ND
rois 输入 ROI边界框。 FLOAT32、FLOAT16 ND
roi_actual_num 可选输入 指定每个batch的ROI数量。 INT32 ND
argmax 输入 指定梯度的索引。 INT32 ND
pooled_h 属性 指定池化率的高。 INT -
pooled_w 属性 指定池化率的宽。 INT -
spatial_scale_h 属性 输入坐标的高映射到ROI坐标的缩放比例。 FLOAT32 -
spatial_scale_w 属性 输入坐标的宽映射到ROI坐标的缩放比例。 FLOAT32 -
pool_channel 属性 指定池化的通道数。 INT -
y 输出 输出结果。 FLOAT32、FLOAT16 ND

约束说明

  • gradOutput、rois、argmax、gradInputRef的数据类型在支持的范围之内。
  • gradOutput、argmax与gradInputRef具有相同的数据类型
  • gradOutput、argmax、gradInputRef的shape大小为4,rois的shape大小为2
  • gradOutput、argmax、rois的shape[0]相等
  • gradOutput、argmax的shape[1]相等
  • gradOutput、argmax的shape[2]等于pooledH和shape[3]等于pooledW
  • rois的值大于等于0
  • pooledH、pooledW大于0。
  • rois[:, 1] 小于rois[:, 2] 且rois[:, 3] 小于rois[:, 4]
  • rois.shape[0]、gradOutput.shape[0]小于等于1024

调用说明

调用方式 样例代码 说明
aclnn接口 test_aclnn_roi_pooling_grad_with_arg_max 通过aclnnRoiPoolingGradWithArgMax接口方式调用RoiPoolingGradWithArgMax算子。