このページは Cloud Translation API によって翻訳されました。
Switch to English

tf.nn.embedding_lookup_sparse

TensorFlow 1つのバージョン GitHubの上のソースを表示

テンソルのリストから、指定されたIDと重みのための埋め込みを検索します。

このオペレーションは、行ごとに少なくとも1つのIDがsp_idsで表される緻密テンソルであることを前提とし(すなわち、空の機能を持つ行が含まれていない)、及びsp_idsのすべてのインデックスは、正規行優先順になっていること。

sp_idssp_weights (そうでない場合はなし)がされているSparseTensor 2.組み込み環境のランクSは常に最後の次元に沿って集計されます。

また、すべてのID値は、P0は次元0に沿ってのparamsの大きさの和である範囲[0、P0)にあると仮定しています。

場合len(params) > 1 、各要素sp_idsの要素の間で分配するparams連続方法でパーティションに我々割り当てIDを意味する「DIV」パーティション戦略に記載の方法。 :例えば、13個のIDは、AS 5つのパーティションに分割されている[[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10], [11, 12]]

ID空間が均等にパーティションの数を分割しない場合、第一の各々 (max_id + 1) % len(params)パーティションは、一個の以上のIDが割り当てられます。

params 完全埋め込みテンソル、または「DIV」パーティション戦略を以下かけら埋め込みテンソルを表す第1の次元を除くすべて同じ形状のテンソルのリストを表す単一のテンソル。
sp_ids Nは、M xはSparseTensor Nは、典型的には、バッチサイズであるInt64のIDのMは任意です。
sp_weights どちらかSparseTensorフロート/ダブル重みの、またはNone指定、場合すべての重みが1であると解釈すべきであり示すためsp_weightsまったく同じ形状とインデックスを持っている必要がありますsp_ids
combiner 削減OPを指定する文字列。現在、「平均」、「sqrtn」と「合計は」サポートされています。 「和」は、各行の埋め込み結果の加重和を計算します。 「平均」の総重量で割った加重和です。 「sqrtnは」重みの二乗和の平方根で割った加重和です。デフォルトmean
max_norm そうでない場合NoneのL2ノルムが結合する前に、この値よりも大きい場合には、各埋め込みがクリップされます。
name オペアンプのためのオプションの名前。

スパースIDの組み合わせ埋め込みを表す緻密テンソル。緻密テンソルの各行が表されるためsp_ids 、OPは、その行のすべてのIDの埋め込みを検索対応する重みを乗算して、かつ指定されたとおり、これらの埋め込みを組み合わせます。

換言すれば、

shape(combined params) = [p0, p1, ..., pm]

そして

shape(sp_ids) = shape(sp_weights) = [d0, d1]

それから

shape(output) = [d0, p1, ..., pm]

例えば、paramsは場合10x20行列であり、sp_ids / sp_weightsであります

 [0, 0]: id 1, weight 2.0
[0, 1]: id 3, weight 0.5
[1, 0]: id 0, weight 1.0
[2, 3]: id 1, weight 3.0
 

combiner =「平均」、出力は3×20行列ここであろう

 output[0, :] = (params[1, :] * 2.0 + params[3, :] * 0.5) / (2.0 + 0.5)
output[1, :] = (params[0, :] * 1.0) / 1.0
output[2, :] = (params[1, :] * 3.0) / 3.0
 

TypeError 場合sp_idsないSparseTensor場合、またはsp_weightsでもないんNoneでもSparseTensor
ValueError 場合combiner {「平均」、「sqrtn」、「和」}のものではありません。