VariadicSplit#
バージョン名: VariadicSplit-1
カテゴリー: データ移動
簡単な説明: VariadicSplit 操作は、入力テンソルを何らかの軸に沿ってチャンクに分割します。チャンクは、split_lengths 入力テンソルに応じて可変長を持つ場合があります。
詳細な説明
VariadicSplit 操作は、指定された入力テンソル data を、[1] axis を持つスカラーまたはテンソルに沿ってチャンクに分割します。追加の入力テンソルの split_lengths に基づいて複数の出力テンソルを生成します。i 番目の出力テンソル形状は、split_lengths[i] である axis に沿った次元を除き、入力テンソル data 形状と等しくなります。
ここで、D は入力テンソル data のランクです。split_lengths の要素の合計は data.shape[axis] と一致する必要があります。
属性: VariadicSplit 操作には属性がありません。
入力
1:
data。タイプ T1 の任意の形状のテンソル。必須。2:
axis。分割するdataに沿った軸。範囲-rank(data) .. rank(data)-1の値を持つT2タイプの形状[1]を持つスカラーまたはテンソル。負の値は終端からの次元を指定します。必須。3:
split_lengths。分割axisに沿った各出力テンソル形状の次元値を含むリスト。タイプT2の 1D テンソル。split_lengthsの要素数によって出力数が決まります。split_lengthsの要素の合計はdata.shape[axis]と一致する必要があります。さらに、split_lengthsには単一の-1要素を含めることができます。これは、他の部分によって消費されない、指定されたaxisに沿った残りの項目すべてを意味します。必須。
出力
複数の出力: タイプ
T1のテンソル。i 番目の出力は、split_lengths[i] != -1の場合、split_lengths[i]であるaxisに沿った次元を除いて、data 入力テンソルと同じ形状を持ちます。それ以外は、axisに沿った次元は、split_lengths入力で説明されているように処理されます。
タイプ
T1: サポートされている任意のタイプ。
T2: 任意の整数タイプ。
例
<layer id="1" type="VariadicSplit" ...>
<input>
<port id="0"> <!-- いくつかのデータ -->
<dim>6</dim>
<dim>12</dim>
<dim>10</dim>
<dim>24</dim>
</port>
<port id="1"> <!-- 軸: 0 -->
</port>
<port id="2">
<dim>3</dim> <!-- split_lengths: [1, 2, 3] -->
</port>
</input>
<output>
<port id="3">
<dim>1</dim>
<dim>12</dim>
<dim>10</dim>
<dim>24</dim>
</port>
<port id="4">
<dim>2</dim>
<dim>12</dim>
<dim>10</dim>
<dim>24</dim>
</port>
<port id="5">
<dim>3</dim>
<dim>12</dim>
<dim>10</dim>
<dim>24</dim>
</port>
</output>
</layer> <layer id="1" type="VariadicSplit" ...>
<input>
<port id="0"> <!-- いくつかのデータ -->
<dim>6</dim>
<dim>12</dim>
<dim>10</dim>
<dim>24</dim>
</port>
<port id="1"> <!-- 軸: 0 -->
</port>
<port id="2">
<dim>2</dim> <!-- split_lengths: [-1, 2] -->
</port>
</input>
<output>
<port id="3">
<dim>4</dim> <!-- 4 = 6 - 2 -->
<dim>12</dim>
<dim>10</dim>
<dim>24</dim>
</port>
<port id="4">
<dim>2</dim>
<dim>12</dim>
<dim>10</dim>
<dim>24</dim>
</port>
</output>
</layer>