mindspore.Tensor.reshape

Tensor.reshape(*shape) Tensor

Rearranges self Tensor based on the given shape.

The shape can only have one -1 at most, in which case it's inferred from the remaining dimensions and the number of elements in self Tensor.

Parameters

shape (Union[tuple[int], list[int], Tensor[int]]) – If shape is a tuple or list, its elements should be integers, and only constant value is allowed. i.e., \((y_1, y_2, ..., y_S)\). If shape is a Tensor, data type should be int32 or int64, and only one-dimensional tensor is supported.

Returns

Tensor, If the given shape does not contain -1, the shape of tensor is \((y_1, y_2, ..., y_S)\). If the k-th position in the given shape is -1, the shape of tensor is \((y_1, ..., y_{k-1}, \frac{\prod_{i=1}^{R}x_{i}}{y_1\times ...\times y_{k-1}\times y_{k+1}\times...\times y_S} , y_{k+1}, ..., y_S)\)

Raises
  • ValueError – The given shape contains more than one -1.

  • ValueError – The given shape contains elements less than -1.

  • ValueError – For scenarios where the given shape does not contain -1, the product of elements of the given shape is not equal to the product of self tensor's shape, \(\prod_{i=1}^{R}x_{i} \ne \prod_{i=1}^{S}y_{i}\), (Namely, it does not match self tensor's array size). And for scenarios where the given shape contains -1, the product of elements other than -1 of the given shape is an aliquant part of the product of self tensor's shape \(\prod_{i=1}^{R}x_{i}\).

Supported Platforms:

Ascend GPU CPU

Examples

>>> import mindspore
>>> import numpy as np
>>> from mindspore import Tensor
>>> input = Tensor(np.array([[-0.1, 0.3, 3.6], [0.4, 0.5, -3.2]]), mindspore.float32)
>>> output = Tensor.reshape(input, (3, 2))
>>> print(output)
[[-0.1  0.3]
 [ 3.6  0.4]
 [ 0.5 -3.2]]