# tf.keras.layers.Permute

<br />

|---|
| [![](https://www.tensorflow.org/images/GitHub-Mark-32px.png) View source on GitHub](https://github.com/keras-team/keras/tree/v2.13.1/keras/layers/reshaping/permute.py#L29-L85) |

Permutes the dimensions of the input according to a given pattern.

Inherits From: [`Layer`](https://www.tensorflow.org/versions/r2.13/api_docs/python/tf/keras/layers/Layer), [`Module`](https://www.tensorflow.org/versions/r2.13/api_docs/python/tf/Module)

#### View aliases


**Compat aliases for migration**

See
[Migration guide](https://www.tensorflow.org/guide/migrate) for
more details.

\`tf.compat.v1.keras.layers.Permute\`

<br />

    tf.keras.layers.Permute(
        dims, **kwargs
    )

Useful e.g. connecting RNNs and convnets.

#### Example:

    model = Sequential()
    model.add(Permute((2, 1), input_shape=(10, 64)))
    # now: model.output_shape == (None, 64, 10)
    # note: `None` is the batch dimension

<br />

<br />

<br />

| ## Args ||
|---|---|
| `dims` | Tuple of integers. Permutation pattern does not include the samples dimension. Indexing starts at 1. For instance, `(2, 1)` permutes the first and second dimensions of the input. |

<br />

<br />

<br />

<br />

| ## Input shape ||
|---|---|
| Arbitrary. Use the keyword argument `input_shape` (tuple of integers, does not include the samples axis) when using this layer as the first layer in a model. ||

<br />

<br />

<br />

<br />

| ## Output shape ||
|---|---|
| Same as the input shape, but with the dimensions re-ordered according to the specified pattern. ||

<br />