EmbeddingSegmentsSum#

バージョン名: EmbeddingSegmentsSum-3

カテゴリー: Sparse

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

詳細な説明: これは Tensorflow の sparse.segment_sum 操作です。インデックス内の各インデックスについて、この演算子は data 埋め込みテーブルから値を取得し、各セグメントに属するすべての値を合計します。segment_ids の値は、インデックス・テンソルのどのセグメント・インデックスが属するかを定義します。値 [0,0,0,1,1,3,5,5] のセグメント ID は 4 つの空でないセグメントを定義します。他のセグメントは空です。セグメントの数は num_segments 入力によって定義されます。

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

入力:

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

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

  • 3: 出力テンソルへのインデックスを持つ、形状 [num_indices] およびタイプ T_INDsegment_ids テンソル。値は並べ替える必要があり、繰り返すことができます。必須。

  • 4: セグメントの数を示す T_IND タイプの num_segments スカラー。必須。

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

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

出力:

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

タイプ

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

  • T_IND: int32 または int64

<layer ... type="EmbeddingSegmentsSum" ... > 
    <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"> <!-- indices  : [0, 2, 3, 4] --> 
            <dim>4</dim> 
        </port> 
        <port id="2"/> <!-- segment_ids   : [0, 0, 2, 2] - 2 番目のセグメントは空です --> 
            <dim>4</dim> 
        </port> 
        <port id="3"/> <!-- num_segments  : 3 --> 
        <port id="4"/> <!-- default_index   : 0 --> 
        <port id="5"/> <!-- per_sample_weigths  : [0.5, 0.5, 0.5, 0.5] --> 
            <dim>4</dim> 
        </port> 
        </input> 
    <output> 
        <port id="6"> <!-- output  : [[-1.05, -1.2], [-0.2, -0.6], [-0.1, 0.4]] --> 
            <dim>3</dim> 
            <dim>2</dim> 
        </port> 
    </output> 
</layer>