megengine.functional.vision.interpolate¶
-
interpolate
(inp, size=None, scale_factor=None, mode='BILINEAR', align_corners=None)[源代码]¶ 按照给定的
size
或scale_factor
对输入张量进行向下/向上采样。size
不可以与scale_factor
共存。- 参数
inp (
Tensor
) – 输入张量。scale_factor (
Union
[float
,Tuple
[float
,float
],None
]) – 输出张量的放缩参数。默认:Nonemode (
str
) – 插值方法,可接受的值有:”BILINEAR”, “LINEAR”。默认:”BILINEAR”align_corners (
Optional
[bool
]) – 这仅在`mode`为“ BILINEAR”或“ LINEAR”时有效。在几何上,我们将输入和输出的像素视为正方形而不是点。如果此参数设置为``True’’,则输入和输出张量将按其角点像素的中心对齐,并保留角点像素处的值。如果设置为``False’’,则输入和输出张量将按其角点像素的角点对齐,并且使用边缘像素值填充边界外的像素,从而使此操作*独立于*输入大小
- 返回类型
Tensor
- 返回
输出张量。
例如:
import numpy as np from megengine import tensor import megengine.functional as F x = tensor(np.arange(1, 5, dtype=np.float32).reshape(1, 1, 2, 2)) out = F.vision.interpolate(x, [4, 4], align_corners=False) print(out.numpy()) out2 = F.vision.interpolate(x, scale_factor=2.) np.testing.assert_allclose(out.numpy(), out2.numpy())
输出:
[[[[1. 1.25 1.75 2. ] [1.5 1.75 2.25 2.5 ] [2.5 2.75 3.25 3.5 ] [3. 3.25 3.75 4. ]]]]