megengine.functional.nn.roi_pooling¶
- roi_pooling(inp, rois, output_shape, mode='max', scale=1.0)[源代码]¶
在指定输入的感兴趣区域上执行池化,并获得固定大小的特征图, 如Faster RCNN中所述
- 参数
inp (
Tensor
) – 输入的特征图,形状为(n, c, h, w)
rois (
Tensor
) – 一个形状为(K, 5)
的张量,其表示从坐标为(idx, x1, y1, x2, y2)
的图像框中要提取的区域,坐标中的(x1, y1)
和(x2, y2)
必须满足0 <= x1 < x2
和0 <= y1 < y2
. 第一列idx
应包含输入批处理中相应元素的索引,即[0, n - 1]
中的数字。mode (
str
) – “max” 或者 “average”, 要使用的池化方式。默认值: “max”scale (
float
) – 将一个输出 roi 特征映射到输入特征的比例。例如,如果输出是 224*224 的图像,输入是 112*112 的特征图,则缩放值应该设置为 0.5. 默认为 1.0
- 返回类型
- 返回
输出的向量。形状为
(K, C, output_shape[0], output_shape[1])
实际案例
>>> import numpy as np >>> np.random.seed(42) >>> inp = Tensor(np.random.randn(1, 1, 128, 128)) >>> rois = Tensor(np.random.random((4, 5))) >>> y = F.vision.roi_pooling(inp, rois, (2, 2)) >>> y.numpy()[0].round(decimals=4) array([[[-0.1383, -0.1383], [-0.5035, -0.5035]]], dtype=float32)