megengine.functional.nn.interpolate¶
- interpolate(inp, size=None, scale_factor=None, mode='bilinear', align_corners=None)[source]¶
Down/up samples the input tensor to either the given size or with the given scale_factor.
sizecan not coexist withscale_factor.- Parameters
inp (
Tensor) – input tensor.size (
Union[int,Tuple[int,int],None]) – the size of the output tensor. Default: Nonescale_factor (
Union[float,Tuple[float,float],None]) – scaling factor of the output tensor. Default: 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]) – This only has an effect whenmodeis “bilinear” or “linear”. Geometrically, we consider the pixels of the input and output as squares rather than points. If set toTrue, the input and output tensors are aligned by the center points of their corner pixels, preserving the values at the corner pixels. If set toFalse, the input and output tensors are aligned by the corner points of their corner pixels, and the interpolation uses edge value padding for out-of-boundary values, making this operation independent of input size
- Return type
- Returns
output tensor
Examples
>>> 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())