EmbeddingBagOffsetsSum

バージョン名: EmbeddingBagOffsetsSum-3

カテゴリー: スパース

簡単な説明: 中間の埋め込みをインスタンス化せずに、埋め込みの “バッグ” の合計を計算します。

詳細説明: これは PyTorch EmbeddingBag の 2 番目のケースで、2 番目と 3 番目の入力として提供される 2 つの 1D テンソルのインデックスがあります。インデックス内の各インデックスについて、この演算子は data 埋め込みテーブルから値を取得し、各バッグに属するすべての値を合計します。offsets の値は、各 “バッグ” のインデックス・テンソルの開始インデックスを定義します。値 [0,3,4,4,6]offsets は、[3,1,0,2,n-6] 要素を含む 5 つの “バッグ” を定義します。

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

入力:

  • 1: 形状 [num_emb, emb_dim1, emb_dim2, ...] およびタイプ T のモジュールの埋め込みルックアップ・テーブルを含む emb_table テンソル。必須。

  • 2: 形状 [num_indices] およびタイプ T_INDインデックス・テンソル。必須。

  • 3: インデックス内の各 “バッグ” の開始インデックス位置を含む、形状 [batch] およびタイプ T_INDoffsets テンソル。必須。

  • 4: 空の “バッグ” を埋める埋め込みテーブル内のデフォルトのインデックスを含む、T_IND タイプの default_index スカラー。提供されない場合、空の “バッグ” にはゼロが詰められます。オプション。

  • 5: インデックスと同じ形状でタイプ Tper_sample_weights テンソル。このテンソルの各値は、各インデックスの埋め込みテーブルからプールされた各値と乗算されます。オプション。デフォルトは 1 のテンソルです。

出力:

  • 1: 形状 [batch, emb_dim1, emb_dim2, ...] および各バッグの埋め込みを含むタイプ T のテンソル。

タイプ:

  • T: 任意の数値タイプ。

  • T_IND: int32 または int64

例:

<layer ... type="EmbeddingBagOffsetsSum" ... >
    <input>
        <port id="0">     <!-- emb_table value is: [[-0.2, -0.6], [-0.1, -0.4], [-1.9, -1.8], [-1.,  1.5], [ 0.8, -0.7]] -->
            <dim>5</dim>
            <dim>2</dim>
        </port>
        <port id="1">     <!-- indices value is: [0, 2, 3, 4] -->
            <dim>4</dim>
        </port>
        <port id="2">     <!-- offsets value is: [0, 2, 2] - 3 "bags" containing [2,0,4-2] elements, second "bag" is empty -->
            <dim>3</dim>
        </port>
        <port id="3"/>    <!-- default_index value is: 0 -->
        <port id="4"/>    <!-- per_sample_weigths value is: [0.5, 0.5, 0.5, 0.5] -->
            <dim>4</dim>
        </port>
    </input>
    <output>
        <port id="5">     <!-- output value is: [[-1.05, -1.2], [-0.2, -0.6], [-0.1, 0.4]] -->
            <dim>3</dim>
            <dim>2</dim>
        </port>
    </output>
</layer>