megengine.functional.nn.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”, “bicubic” 和”nearest”的插值方法。align_corners (
Optional
[bool
]) – 只在插值方式为”bilinear” 或者 “linear”的时候需要设置。几何上看,我们将像素视作方框而不是点。 该值设置为``True``时,输入输出张量角点像素的中心点对齐, 保留角点像素的值。 该值设置为``False``时候, 输入输出张量角点的像素的角点对齐,用边界值填充超出边界的像素点点, 该操作和输入的大小无关。
- 返回类型
- 返回
输出张量。
实际案例
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. ]]]]