Gather#

バージョン名: Gather-1

カテゴリー: データ移動

簡単な説明: Gather 操作は、2 番目の入力テンソルで指定されたインデックスと 3 番目の入力からの軸に従って、最初の入力テンソルのデータスライスを取得します。

詳細な説明

output[p_0, p_1, ..., p_{axis-1}, i, ..., j, ...] = 
  input1[p_0, p_1, ..., p_{axis-1}, input2[i, ..., j], ...]

ここで、axis は 3 番目の入力からの値です。

属性: Gather には属性がありません

入力

  • 1: 任意のデータを持つテンソル。必須。

  • 2: 収集するインデックスを持つテンソル。インデックス値の範囲は [0, input1[axis] - 1] です。必須。

  • 3: スカラーまたは 1D テンソル axis は、データを収集する次元のインデックスです。例えば、axis が 1 に等しい場合は、最初の次元で収集が実行されることを意味します。負の値は逆インデックスを意味します。許可される値は [-len(input1.shape), len(input1.shape) - 1] です。必須。

出力

  • 1: 2 番目の入力テンソルのインデックスによって収集された最初の入力テンソルの要素で構成される結果のテンソル。テンソルの形状は、[input1.shape[:axis], input2.shape, input1.shape[axis + 1:]] です

<layer id="1" type="Gather" ...> 
    <input> 
        <port id="0"> 
            <dim>6</dim> 
            <dim>12</dim> 
            <dim>10</dim> 
            <dim>24</dim> 
        </port> 
        <port id="1"> 
            <dim>15</dim> 
            <dim>4</dim> 
            <dim>20</dim> 
            <dim>28</dim> 
        </port> 
        <port id="2"/> <!-- axis = 1 --> 
    </input> 
    <output> 
        <port id="2"> 
            <dim>6</dim> <!-- embedded dimension from the 1st input --> 
            <dim>15</dim> <!-- 2 番目の入力からの埋め込み次元 --> 
            <dim>4</dim> <!-- 2 番目の入力からの埋め込み次元 --> 
            <dim>20</dim> <!-- 2 番目の入力からの埋め込み次元 --> 
            <dim>28</dim> <!-- 2 番目の入力からの埋め込み次元 --> 
            <dim>10</dim> <!-- 最初の入力からの埋め込み次元 --> 
            <dim>24</dim> <!-- 最初の入力からの埋め込み次元 --> 
        </port> 
    </output> 
</layer>