Transpose

バージョン名: Transpose-1

カテゴリー: データ移動

簡単な説明: Transpose 操作は、入力テンソル次元を並べ替えます。

詳細な説明: Transpose 操作は、入力テンソル次元を並べ替えます。ソース・インデックスとです。インデックスは、次の式によってバインドされます。

\[\begin{split}[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)]\end{split}\]

属性: Transpose 操作には属性がありません。

入力:

  • 1: arg - 転置されるテンソル。タイプ T の任意の形状のテンソル。必須。

  • 2: input_order - 最初の入力形状の軸に適用する順列。n 要素 T_AXIS のタイプと形状 [n] の 1D テンソル。n は最初の入力のランクまたは 0 です。テンソルの値には [0, n-1] 範囲内のすべての整数が含まれている必要がありますが、空のテンソルが指定されている場合 (形状 [0])、軸は反転されます。必須。

出力:

  • 1: タイプ T のテンソルで、前述のルールに従って転置された形状です。

タイプ:

  • T: サポートされるタイプ。

  • T_AXIS: 任意の整数タイプ。

例:

例 1

 <layer ... type="Transpose">
     <input>
         <port id="0">
             <dim>2</dim>
             <dim>3</dim>
             <dim>4</dim>
         </port>
         <port id="1">
             <dim>3</dim>  <!-- [2, 0, 1] -->
         </port>
     </input>
     <output>
         <port id="2">
             <dim>4</dim>
             <dim>2</dim>
             <dim>3</dim>
         </port>
     </output>
 </layer>

例 2: input_order = Shape[0] の空の 1D テンソル

 <layer ... type="Transpose">
     <input>
         <port id="0">
             <dim>2</dim>
             <dim>3</dim>
             <dim>4</dim>
         </port>
         <port id="1">
             <dim>0</dim> <!-- input_order is an empty 1D tensor -->
         </port>
     </input>
     <output>
         <port id="2">
             <dim>4</dim>
             <dim>3</dim>
             <dim>2</dim>
         </port>
     </output>
 </layer>