class ROIAlign()
API接口
class ROIAlign(nn.Module):
功能描述
使用NPU API进行ROIAlign。
参数说明
- output_size (Tuple) - h, w。
- spatial_scale (Float) - 按此参数值缩放输入框。
- sampling_ratio (Int) - 为每个输出样本采集的输入样本数。0表示密集采样。
- aligned (Bool) - 如果值为False,使用Detectron中的原实现方式。如果值为True,可更准确地对齐结果。
aligned=True含义:
给定一个连续坐标c,使用floor(c - 0.5) 和ceil(c - 0.5)对它的两个相邻像素索引(像素模型中)进行计算。例如,c=1.3具有离散索引为[0]和[1] (从连续坐标0.5到1.5的底层信号采样)的像素邻域。但原始ROIAlign(aligned=False)在计算相邻像素索引时不会减去0.5,因此在执行双线性插值时,它使用的是未完全对齐的像素(相对于我们的像素模型有一点不对齐)。当aligned=True,首先适当缩放ROI,然后在调用ROIAlign之前将其移动-0.5。这样可以生成正确的邻域。相关验证请参见detectron2/tests/testroialign.py。如果ROIAlign与conv层一起使用,差异也不会对模型的性能产生影响。
输出说明
Float - shape为(k, 5)和(k, 1)的张量。标签以0为基础。
示例
from torch_npu.contrib.module import ROIAlign roi_align(input_tensor.float(), rois, output_size, spatial_scale, sampling_ratio, aligned)
父主题: torch_npu.contrib