[Spec] Transpose op spec update (#5215)

* Update detailed description

* Update input info

* Output description update

* Update math formula

* Change T1, T2 to T and T_AXIS

* Update input description

* Update output description

* Update examples

* Simplify output description

* Add missed comma
This commit is contained in:
Katarzyna Mitrus 2021-04-22 14:31:06 +02:00 committed by GitHub
parent 13e91c3ce2
commit 311416ac02
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -6,30 +6,26 @@
**Short description**: *Transpose* operation reorders the input tensor dimensions. **Short description**: *Transpose* operation reorders the input tensor dimensions.
**Attributes**: **Detailed description**: *Transpose* operation reorders the input tensor dimensions. Source indexes and destination indexes are bound by the formula:
\f[output[i(order[0]), i(order[1]), ..., i(order[N-1])] = input[i(0), i(1), ..., i(N-1)]\\ \quad \textrm{where} \quad i(j) \quad\textrm{is in the range} \quad [0, (input.shape[j]-1)]\f]
No attributes available.
**Attributes**: *Transpose* operation has no attributes.
**Inputs**: **Inputs**:
* **1**: "arg" - the tensor to be transposed. A tensor of type T1. **Required.** * **1**: `arg` - the tensor to be transposed. A tensor of type `T` and arbitrary shape. **Required.**
* **2**: "input_order" - the permutation to apply to the axes of the input shape. Must be a vector of element T2 type, with shape [n], where n is the rank of "arg". The tensor's value must contain every integer in the range [0,n-1]. If an empty list is specified [] then the axes will be inverted. A tensor of type T2. **Required.** * **2**: `input_order` - the permutation to apply to the axes of the first input shape. A 1D tensor of `n` elements `T_AXIS` type and shape `[n]`, where `n` is the rank of the first input or `0`. The tensor's value must contain every integer in the range `[0, n-1]`, but if an empty tensor is specified (shape `[0]`), then the axes will be inverted. **Required.**
**Outputs**: **Outputs**:
* **1**: A tensor with shape and type matching 1st tensor. * **1**: A tensor of type `T` and transposed shape according to the rules specified above.
**Types** **Types**
* *T1*: arbitrary supported type. * *T*: any supported type.
* *T2*: any integer type. * *T_AXIS*: any integer type.
**Detailed description**:
*Transpose* operation reorders the input tensor dimensions. Source indexes and destination indexes are bound by the formula:
\f[
output[i(order[0]), i(order[1]), ..., i(order[N-1])] = input[i(0), i(1), ..., i(N-1)], where i(j) in range 0..(input.shape[j]-1).
\f]
**Examples** **Examples**
@ -57,28 +53,7 @@ No attributes available.
</layer> </layer>
``` ```
*Example 2: input_order in not specified* *Example 2: input_order = empty 1D tensor of Shape[0]
```xml
<layer ... type="Transpose">
<input>
<port id="0">
<dim>2</dim>
<dim>3</dim>
<dim>4</dim>
</port>
</input>
<output> <!-- input_order = [2, 1, 0] if input_order is not set -->
<port id="1">
<dim>4</dim>
<dim>3</dim>
<dim>2</dim>
</port>
</output>
</layer>
```
*Example 3: input_order = empty_list []*
```xml ```xml
<layer ... type="Transpose"> <layer ... type="Transpose">
@ -89,7 +64,7 @@ No attributes available.
<dim>4</dim> <dim>4</dim>
</port> </port>
<port id="1"> <port id="1">
<dim>0</dim> <!-- input_order = [2, 1, 0] if input_order is empty list --> <dim>0</dim> <!-- input_order is an empty 1D tensor -->
</port> </port>
</input> </input>
<output> <output>