Split

バージョン名: Split-1

カテゴリー: データ移動

簡単な説明: Split 操作は、入力テンソルを軸に沿って同じ長さの部分に分割します。

詳細な説明:

Split 操作は、指定された入力テンソル data をスカラー axis に沿って同じ長さのチャンクに分割します。num_splits 属性に基づいて複数の出力テンソルを生成します。i 番目の出力テンソル形状は、data.shape[axis]/num_splits である axis に沿った次元を除いて、入力テンソル data 形状と等しくなります。

\[shape\_output\_tensor = [data.shape[0], data.shape[1], \dotsc , data.shape[axis]/num\_splits, \dotsc data.shape[D-1]]\]

ここで、D は入力テンソル data のランクです。分割される軸は、num_splits 属性によって均等に分割される必要があります。

属性:

  • num_splits

    • 説明: 入力テンソル dataaxis 次元に沿って分割される出力の数。axis に沿った data 形状の次元は、num_splits で均等に割り切れる必要があります。

    • 値の範囲: 範囲内の整数 [1, data.shape[axis]]

    • タイプ: int

    • 必須: はい

入力:

  • 1: data。タイプ T の任意の形状のテンソル。必須。

  • 2: axis。分割する data に沿った軸。[-rank(data), rank(data) - 1] 範囲内の T_AXIS タイプのスカラー。負の値は終端からの次元を指定します。必須。

  • 注: axis に沿った入力テンソル data 形状の次元は、num_splits 属性で均等に割り切れる必要があります。

出力:

  • 複数の出力: T タイプのテンソル。i 番目の出力は、data.shape[axis]/num_splits である axis に沿った次元を除き、data 入力テンソルと同じ形状を持ちます。

タイプ:

  • T: サポートされている任意のタイプ。

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

例:

 <layer id="1" type="Split" ...>
     <data num_splits="3" />
     <input>
         <port id="0">       <!-- some data -->
             <dim>6</dim>
             <dim>12</dim>
             <dim>10</dim>
             <dim>24</dim>
         </port>
         <port id="1">       <!-- axis: 1 -->
         </port>
     </input>
     <output>
         <port id="2">
             <dim>6</dim>
             <dim>4</dim>
             <dim>10</dim>
             <dim>24</dim>
         </port>
         <port id="3">
             <dim>6</dim>
             <dim>4</dim>
             <dim>10</dim>
             <dim>24</dim>
         </port>
         <port id="4">
             <dim>6</dim>
             <dim>4</dim>
             <dim>10</dim>
             <dim>24</dim>
         </port>
     </output>
 </layer>