megengine.functional.nn.interpolate¶
- interpolate(inp, size=None, scale_factor=None, mode='bilinear', align_corners=None)[源代码]¶
按照给定的
size
或scale_factor
对输入张量进行向下/向上采样。size
不可以与scale_factor
共存。- 参数
inp (
Tensor
) – 输入张量。size (
Union
[int
,Tuple
[int
,int
],None
]) – 输出张量的大小。默认值: Nonescale_factor (
Union
[float
,Tuple
[float
,float
],None
]) – 输出张量的放缩参数。默认:Nonemode (
str
) – interpolation methods, acceptable values are: “bilinear”, “linear”, “trilinear”, “bicubic” and “nearest”. Default: “bilinear” “trilinear” is valid only when inp is a 5D-tensoralign_corners (
Optional
[bool
]) – 只用当mode
是 “bilinear” 或 “linear” 时这才有效。几何上,我们认为输入和输出的像素是正方形而不是点。如果设置为True
,输入和输出张量四角上的像素的中心会被对齐,四角上的像素的值保持不变。如果设置为False
,输入和输出张量四角上的像素的角会被对齐,并且插值对于边界外的值会使用边界上的值进行填充,使得这个操作 不依赖 输入的大小。
- 返回类型
- 返回
输出张量
实际案例
>>> import numpy as np >>> x = Tensor(np.arange(1, 5, dtype=np.float32).reshape(1, 1, 2, 2)) >>> out = F.vision.interpolate(x, [4, 4], align_corners=False) >>> out.numpy() array([[[[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. ]]]], dtype=float32) >>> out2 = F.vision.interpolate(x, scale_factor=2.) >>> np.testing.assert_allclose(out.numpy(), out2.numpy())