megengine.functional.nn.roi_align

roi_align(inp, rois, output_shape, mode='average', spatial_scale=1.0, sample_points=2, aligned=True)[源代码]

对输入进行 roi align。

参数
  • inp (Tensor) – 表示输入特征的张量,形状为 (N, C, H, W)

  • rois (Tensor) – (N, 5) 的框数据(box). 第一列是框的下标,其余四列分别 xyxy.

  • output_shape (Union[int, tuple, list]) – (height, width) 输出的 rois 的 shape 特征。

  • mode (str) – “max” 或 “average”, 使用 max/average 对齐类似 max/average pooling. 默认: “average”

  • spatial_scale (float) – 使用这个数值放缩输入框。默认:1.0

  • sample_points (Union[int, tuple, list]) – 每个输出样本要采取的输入样本数。0 表示密集采样。默认:2

  • aligned (bool) – 是否对齐输入特征,如果 aligned=True,首先选取合适的参数放缩 ROI 然后以 -0.5 的偏移量进行偏移。默认:True

返回类型

Tensor

返回

输出张量。

实际案例

import numpy as np
from megengine import tensor
import megengine.functional as F

np.random.seed(42)
inp = tensor(np.random.randn(1, 1, 128, 128))
rois = tensor(np.random.random((4, 5)))
y = F.vision.roi_align(inp, rois, (2, 2))
print(y.numpy()[0].round(decimals=4))

输出:

[[[0.175  0.175 ]
  [0.1359 0.1359]]]