mindspore.ops.tensor_split

View Source On Gitee
mindspore.ops.tensor_split(input, indices_or_sections, axis=0)[source]

Splits a tensor into multiple sub-tensors along the given axis.

Parameters
  • input (Tensor) – A Tensor to be divided.

  • indices_or_sections (Union[int, tuple(int), list(int)]) –

    • If indices_or_sections is an integer n, input tensor will be split into n sections.

      • If input.shape[axis] can be divisible by n, sub-sections will have equal size input.shape[axis]/n .

      • If input.shape[axis] is not divisible by n, the first input.shape[axis]modn sections will have size input.shape[axis]//n+1 , and the rest will have size input.shape[axis]//n .

    • If indices_or_sections is of type tuple(int) or list(int), the input tensor will be split at the indices in the list or tuple. For example, given parameters indices_or_sections=[1,4] and axis=0 , the input tensor will be split into sections input[:1] , input[1:4] , and input[4:] .

  • axis (int) – The axis along which to split. Default: 0 .

Returns

A tuple of sub-tensors.

Raises
  • TypeError – If argument input is not Tensor.

  • TypeError – If argument axis is not int.

  • ValueError – If argument axis is out of range of [input.ndim,input.ndim) .

  • TypeError – If each element in 'indices_or_sections' is not integer.

  • TypeError – If argument indices_or_sections is not int, tuple(int) or list(int).

Supported Platforms:

Ascend GPU CPU

Examples

>>> import numpy as np
>>> from mindspore import Tensor, ops
>>> input_x = np.arange(9).astype("float32")
>>> output = ops.tensor_split(Tensor(input_x), 3)
>>> print(output)
(Tensor(shape=[3], dtype=Float32, value= [ 0.00000000e+00,  1.00000000e+00,  2.00000000e+00]),
Tensor(shape=[3], dtype=Float32, value= [ 3.00000000e+00,  4.00000000e+00,  5.00000000e+00]),
Tensor(shape=[3], dtype=Float32, value= [ 6.00000000e+00,  7.00000000e+00,  8.00000000e+00]))