---
title: "init(i_desc:o_desc:permutation:)"
framework: accelerate
role: symbol
role_heading: Initializer
path: "accelerate/bnnslayerparameterspermute/init(i_desc:o_desc:permutation:)"
---

# init(i_desc:o_desc:permutation:)

Returns a new permute layer parameters structure from the specified parameters.

## Declaration

```swift
init(i_desc: BNNSNDArrayDescriptor, o_desc: BNNSNDArrayDescriptor, permutation: (Int, Int, Int, Int, Int, Int, Int, Int))
```

## Parameters

- `i_desc`: The descriptor of the input.
- `o_desc`: The descriptor of the output.
- `permutation`: The tuple that defines the permutation.

## Discussion

Discussion Use the permutation array to specify the input axis source for the corresponding output axis source. For example, a permutation array [2,1,0] applied on a BNNSDataLayoutImageCHW tensor results in axis reverse (that is, output axis 0 is input axis 2, output axis 1 is input axis 1, and output axis 2 is input axis 0). important: The number of input dimensions must be equal to number of output dimensions.

## See Also

### Initializers

- [init()](accelerate/bnnslayerparameterspermute/init().md)
