VariadicSplit#

バージョン名: VariadicSplit-1

カテゴリー: データ移動

簡単な説明: VariadicSplit 操作は、入力テンソルを何らかの軸に沿ってチャンクに分割します。チャンクは、split_lengths 入力テンソルに応じて可変長を持つ場合があります。

詳細な説明

VariadicSplit 操作は、指定された入力テンソル data を、[1] axis を持つスカラーまたはテンソルに沿ってチャンクに分割します。追加の入力テンソルの split_lengths に基づいて複数の出力テンソルを生成します。i 番目の出力テンソル形状は、split_lengths[i] である axis に沿った次元を除き、入力テンソル data 形状と等しくなります。

shape_output_tensor=[data.shape[0],data.shape[1],,split_lengths[i],,data.shape[D1]]

ここで、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>