FilesLast commitLast update
2 months ago
2 months ago
2 months ago
2 months ago
30 days ago
2 months ago
1 month ago
README

PSROIPoolingV2

产品支持情况

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

功能说明

PSROIPoolingV2对输入特征图执行位置敏感RoI平均池化。对于每个RoI,算子将每个输出通道和池化位置映射到唯一输入通道,在保留RoI空间布局的同时完成区域聚合,适用于R-FCN等位置敏感目标检测网络。

输入x的逻辑shape为[N,C,H,W],输入rois的shape为[N,5,R]。令O=output_dim、G=group_size,要求C=O*G*G,输出y的shape为[N*R,O,G,G]。每个输出位置对应的输入通道为:

cin=o×G2+ph×G+pwc_{\mathrm{in}} = o \times G^2 + p_h \times G + p_w

算子先对RoI坐标执行rint,再对右下端点加1并乘以spatial_scale,随后裁剪到特征图范围,对对应分组区域求平均。

参数说明

参数名 输入/输出/属性 描述 数据类型 数据格式
x 输入 输入特征图,shape为[N,C,H,W]。 float16、float32 ND
rois 输入 RoI数据,shape为[N,5,R],五个平面依次为batch_id,x1,y1,x2,y2。 与x相同 ND
y 输出 池化结果,shape为[N*R,output_dim,group_size,group_size]。 与x相同 ND
spatial_scale 属性 原图RoI坐标到特征图坐标的缩放比例,必填。 Float -
output_dim 属性 输出通道数,必填。 Int -
group_size 属性 位置敏感分组大小,输出空间为group_size*group_size,必填。 Int -

约束说明

  • x必须是4D ND Tensor,rois必须是3D ND Tensor,且rois.shape[1]必须为5。
  • x.shape[0]必须等于rois.shape[0],输入通道数必须满足C=output_dim*group_size²。
  • x、rois和y仅支持全float16或全float32两种组合,不支持混合dtype。
  • spatial_scale必须为有限正数,output_dim必须大于0,group_size的取值范围为[1,127]。
  • rois中的坐标必须有限且非负,round(batch_id)必须位于[0,N-1]。
  • 支持N=0或R=0的空输出;已知的C、H和W维必须大于0。
  • 坐标处理顺序固定为“取整→右下端点加1→缩放”,不得交换取整与缩放顺序。
  • 前向计算为确定性实现;x中的IEEE NaN/Inf按浮点语义自然传播。

调用说明

调用方式 调用样例 说明
图模式调用 test_geir_psroi_pooling_v2 参见算子调用完成算子编译和验证。