mindspore.ops.affine_grid
- mindspore.ops.affine_grid(theta, size, align_corners=False)[source]
Returns a 2D or 3D flow field (sampling grid) based on theta, a batch of affine matrices.
- Parameters
theta (Tensor) – The input tensor of flow field whose dtype is float16, float32. Input batch of affine matrices with shape \((N, 2, 3)\) for 2D grid or \((N, 3, 4)\) for 3D grid.
size (tuple[int]) – The target output image size. The value of target output with format \((N, C, H, W)\) for 2D grid or \((N, C, D, H, W)\) for 3D grid.
align_corners (bool, optional) – Geometrically, each pixel of input is viewed as a squqre instead of dot. If
True
, consider extremum -1 and 1 referring to the centers of the pixels rather than pixel corners. The default value isFalse
, extremum -1 and 1 refer to the corners of the pixels, so that sampling is irrelevant to resolution of the image. Default:False
.
- Returns
Tensor, a tensor whose data type is same as 'theta', and the shape is \((N, H, W, 2)\) for 2D grid or \((N, D, H, W, 3)\) for 3D grid.
- Raises
TypeError – If theta is not a Tensor or size is not a tuple.
ValueError – If the shape of theta is not \((N, 2, 3)\) or \((N, 3, 4)\).
ValueError – If the size of size is not 4 or 5.
ValueError – If the shape of theta is \((N, 2, 3)\), the size of size is not 4; If the shape of theta is \((N, 3, 4)\), the size of size is not 5.
ValueError – If the size[0] is not equal to the shape[0] of theta.
- Supported Platforms:
Ascend
GPU
CPU
Examples
>>> import mindspore >>> from mindspore import Tensor >>> from mindspore import ops >>> theta = Tensor([[[0.8, 0.5, 0],[-0.5, 0.8, 0]]], mindspore.float32) >>> out_size = (1, 3, 2, 3) >>> output = ops.affine_grid(theta, out_size, False) >>> print(output) [[[[-0.78333336 -0.06666666] [-0.25 -0.4 ] [ 0.28333336 -0.73333335]] [[-0.28333336 0.73333335] [ 0.25 0.4 ] [ 0.78333336 0.06666666]]]]