mindspore.ops.slice
- mindspore.ops.slice(input_x, begin, size)[源代码]
根据指定shape对输入Tensor进行切片。
从 begin 指定的位置开始,根据 size 的shape对输入Tensor进行切片。 begin 表示 input_x 每个维度的偏移量。 size 表示输出Tensor的大小。
Note
begin 的起始值为0,size 的起始值为1。
如果 size[i] 为-1,则维度i中的所有剩余元素都包含在切片中。这相当于 \(size[i] = input\_x.shape(i) - begin[i]\) 。
- 参数:
input_x (Tensor) - Slice的输入,任意维度的Tensor。
begin (Union[tuple, list]) - 切片的起始位置。只支持常量值(>=0)。
size (Union[tuple, list]) - 切片的大小。只支持常量值。
- 返回:
Tensor,shape与输入 size 相同,数据类型与输入 input_x 的相同。
- 异常:
TypeError - begin 或 size 既不是tuple也不是list。
- 支持平台:
Ascend
GPU
CPU
样例:
>>> from mindspore import Tensor >>> from mindspore import ops >>> import numpy as np >>> data = Tensor(np.array([[[1, 1, 1], [2, 2, 2]], ... [[3, 3, 3], [4, 4, 4]], ... [[5, 5, 5], [6, 6, 6]]]).astype(np.int32)) >>> output = ops.slice(data, (1, 0, 0), (1, 1, 3)) >>> print(output) [[[3 3 3]]] >>> output = ops.slice(data, (1, 0, 0), (1, 1, 2)) >>> print(output) [[[3 3]]] >>> output = ops.slice(data, (1, 0, 0), (1, 1, 1)) >>> print(output) [[[3]]] >>> output = ops.slice(data, (1, 1, 0), (1, 1, 3)) >>> print(output) [[[4 4 4]]] >>> output = ops.slice(data, (1, 0, 1), (1, 1, 2)) >>> print(output) [[[3 3]]]