# Method reshape

#### static member reshape: int64 list -> Tensor<'T> -> Tensor<'T>

Changes the shape of a tensor.

##### Declaration

`static member reshape: shp:int64 list -> a:Tensor<'T> -> Tensor<'T>`

##### Parameters

Type | Name | Description |
---|---|---|

int64 list | shp | The target shape. |

Tensor<'T> | a | The tensor to operate on. |

##### Returns

Type | Description |
---|---|

Tensor<'T> | A tensor of the specified shape. |

##### Remarks

Changes the shape of the tensor to the specified shape.
The total number of elements must not change.
One dimension of the `shp`

can be specified as val Remainder,
in which case the size of that dimension is inferred automatically.

If a reshape is possible without copying the data of the tensor, a view of the original tensor is returned and the storage is shared. In this case, modifications done to the returned tensor will affect the original tensor.

If a reshape is not possible without copying the data of the tensor, a new tensor of the specified shape and a new storage is allocated and the data is copied into the new tensor.

##### Examples

```
let a = HostTensor.zeros [2L; 3L; 4L]
let b = Tensor.reshape [6L; 4L] a // b.Shape = [6L; 4L]
let c = Tensor.reshape [2L; Remainder; 1L] a // c.Shape = [2L; 12L; 1L]
```