# reshape¶

paddle.sparse. reshape ( x, shape, name=None ) [source]

Changes the shape of `x` without changing its value, requiring x to be a SparseCooTensor or SparseCsrTensor. Currently this function can only reshape the sparse dims of `x` , but `shape` argument must be specified as the shape of the reshaped tensor.

Note that if x is a SparseCsrTensor, then len(shape) must be 2 or 3.

There are some tricks when specifying the target shape.

1. -1 means the value of this dimension is inferred from the total element number of x and remaining dimensions. Thus one and only one dimension can be set -1.

1. 0 means the actual dimension value is going to be copied from the corresponding dimension of x. The indices of 0 in the target shape can not exceed the rank of x.

Here are some examples to explain it.

1. Given a 3-D tensor x with a shape [2, 4, 6], and the target shape is [6, 8], the reshape operator will transform x into a 2-D tensor with shape [6, 8] and leaving x’s data unchanged.

1. Given a 3-D tensor x with a shape [2, 4, 6], and the target shape is [2, 3, -1, 2], the reshape operator will transform x into a 4-D tensor with shape [2, 3, 4, 2] and leaving x’s data unchanged. In this case, one dimension of the target shape is set to -1, the value of this dimension is inferred from the total element number of x and remaining dimensions.

1. Given a 3-D tensor x with a shape [2, 4, 6], and the target shape is [-1, 0, 3, 2], the reshape operator will transform x into a 4-D tensor with shape [2, 4, 3, 2] and leaving x’s data unchanged. In this case, besides -1, 0 means the actual dimension value is going to be copied from the corresponding dimension of x.

Parameters
• x (Tensor) – The input sparse tensor with data type `float32`, `float64`, `int32`, `int64` or `bool`.

• shape (list|tuple) – Define the target shape. At most one dimension of the target shape can be -1. The data type is `int32`.

• name (str, optional) – Name for the operation (optional, default is None). For more information, please refer to Name.

Returns

A reshaped Tensor with the same data type as `x`.

Return type

Tensor

Examples

```import paddle

x_shape = [6, 2, 3]
new_shape = [1, 0, 2, -1, 3]
format = "coo"