EmbeddingBagPackedSum#

バージョン名: EmbeddingBagPackedSum-3

カテゴリー: Sparse

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

詳細な説明:

EmbeddingBagPackedSum 操作は、torch.nn.EmbeddingBagsum モードでの実装であり、入力が形状 [batch, indices_per_bag] の 2D テンソルとしてインデックス付けされます。操作は、ReduceSum(Multiply(Gather(emb_table, indices, axis=0), Unsqueeze(per_sample_weights, -1)), axis=1) と同等です。

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

入力:

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

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

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

出力:

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

タイプ

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

  • T_IND: int32 または int64

<layer ... type="EmbeddingBagPackedSum" ... > 
    <input> 
        <port id="0"> <!-- emb_table 値: [[-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"> <!-- インデックス値: [[0, 2], [1, 2], [3, 4]] --> 
            <dim>3</dim> 
            <dim>2</dim> 
        </port> 
        <port id="2"/> <!-- per_sample_weights 値: [[0.5, 0.5], [0.5, 0.5], [0.5, 0.5]] --> 
            <dim>3</dim> 
            <dim>2</dim> 
        </port> 
    </input> 
    <output> 
        <port id="3"> 
            <!-- output 値: [[-1.05, -1.2], [-1., -1.1], [-0.1, 0.4]] --> 
            <dim>3</dim> 
            <dim>2</dim> 
        </port> 
    </output> 
</layer>