mindspore.ops.affine_grid
- mindspore.ops.affine_grid(theta, size, align_corners=False)[源代码]
- 基于输入的批量仿射矩阵 theta ,返回一个二维或三维的流场(采样网格)。 - 参数:
- theta (Tensor) - 仿射矩阵输入,其shape为 \((N, 2, 3)\) 用于 2D grid 或 \((N, 3, 4)\) 用于 3D grid。 
- size (tuple[int]) - 目标输出图像大小。指格式为 \((N, C, H, W)\) 的2D grid或 \((N, C, D, H, W)\) 的3D grid的大小。 
- align_corners (bool,可选) - 在几何上,我们将输入的像素视为正方形而不是点。如果设置为 - True,则极值 -1 和 1 指输入像素的中心。如果设置为- False,则极值 -1 和 1 指输入像素的边角,从而使采样与分辨率无关。默认值:- False。
 
- 返回:
- Tensor,其数据类型与 theta 相同,其shape为 \((N, H, W, 2)\) 用于 2D grid或 \((N, D, H, W, 3)\) 用于 3D grid。 
- 异常:
- TypeError - theta 不是Tensor或 size 不是tuple。 
- ValueError - theta 的shape不是 \((N, 2, 3)\) 或 \((N, 3, 4)\) 。 
- ValueError - size 的长度不是 4 或 5。 
- ValueError - theta 的shape是 \((N, 2, 3)\) ,size 的长度却不是4; theta 的shape是 \((N, 3, 4)\) ,size 的长度却不是5。 
- ValueError - size 的第一个值不等于 theta 的第一维的长度。 
 
- 支持平台:
- Ascend- GPU- CPU
 - 样例: - >>> import mindspore >>> from mindspore import Tensor >>> import mindspore.ops as 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]]]]