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) – 插值方法。 默认值是”bilinear”, 目前还支持”linear”, “bicubic” 和”nearest”的插值方法。align_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())