# reshape¶

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

Changes the shape of `x` without changing its data.

Note that the output Tensor will share data with origin Tensor and doesn’t have a Tensor copy in `dygraph` mode. If you want to use the Tensor copy version, please use Tensor.clone like `reshape_clone_x = x.reshape([-1]).clone()`.

Some tricks exist 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 index of 0s in shape can not exceed the dimension 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 specified 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) – An N-D Tensor. The data type is `float32`, `float64`, `int32`, `int64` or `bool`

• shape (list|tuple|Tensor) – Define the target shape. At most one dimension of the target shape can be -1. The data type is `int32` . If `shape` is a list or tuple, the elements of it should be integers or Tensors with shape . If `shape` is an Tensor, it should be an 1-D Tensor .

• 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 = paddle.rand([2, 4, 6], dtype="float32")

out = paddle.reshape(x, [-1, 0, 3, 2])
print(out)
# the shape is [2,4,3,2].

print(out)
# the shape of out_2 is [4, 12].