mindspore.ops.slice

mindspore.ops.slice(input_x, begin, size)[source]

Slices a tensor in the specified shape.

Slice the tensor input_x in shape of size and starting at the location specified by begin. The slice begin represents the offset in each dimension of input_x. The slice size represents the size of the output tensor.

Note

begin is zero-based and size is one-based.

If size[i] is -1, all remaining elements in dimension i are included in the slice. This is equivalent to setting \(size[i] = input\_x.shape(i) - begin[i]\).

Parameters
  • input_x (Tensor) – The target tensor. The shape is \((N,*)\) where \(*\) means, any number of additional dimensions.

  • begin (Union[tuple, list]) – The beginning of the slice. Only constant value(>=0) is allowed.

  • size (Union[tuple, list]) – The size of the slice. Only constant value is allowed.

Returns

Tensor, the shape is input size, the data type is the same as input_x.

Raises

TypeError – If begin or size is neither tuple nor list.

Supported Platforms:

Ascend GPU CPU

Examples

>>> 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]]]