Ta strona została przetłumaczona przez Cloud Translation API.
Switch to English

tf.nn.embedding_lookup_sparse

TensorFlow 1 wersja Zobacz źródło na GitHub

Patrzy zanurzeń dla podanych identyfikatorów i ciężarów z listy tensorów.

Ten PO zakłada się, że istnieje co najmniej jeden identyfikator dla każdego rzędu w gęstej tensora przedstawionego sp_ids (to znaczy nie ma rzędy z pustymi funkcjami), oraz że wszystkie wskaźniki sp_ids są kanonicznej rzędu major kolejności.

sp_ids i sp_weights (jeśli nie None) są SparseTensor sz ranga 2. zanurzeń zawsze są agregowane wzdłuż ostatniego wymiaru.

Zakłada się również, że wszystkie wartości ID mieścić się w zakresie [0, p0), gdzie P0 suma wielkości params wzdłuż wymiaru 0.

Jeśli len(params) > 1 , każdy element sp_ids rozdziela się pomiędzy elementami params według „dz” strategia podziału, co oznacza, że należy przypisać identyfikatory przegród w ciągły sposób. Na przykład, 13 identyfikatory są podzielone na 5 przegród: [[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10], [11, 12]] .

Jeżeli przestrzeń identyfikatora nie równomiernie podzielić liczbę stref, z których każdy z pierwszego (max_id + 1) % len(params) przegródki zostanie przypisany jeden identyfikator.

params Pojedyncza tensor reprezentujący pełną tensor wbudowania, lub listę tensorów wszystkich samym kształcie, z wyjątkiem pierwszego wymiaru, reprezentujący sharded osadzanie tensory po „div” strategii partycji.
sp_ids N x M SparseTensor z Int64 ID w którym n oznacza zwykle wielkość partii, a M jest dowolna.
sp_weights albo SparseTensor float / double ciężarkami lub None , aby wskazać wszystkie ciężary powinny być brane za 1. Jeśli określony, sp_weights musi mieć dokładnie ten sam kształt i indeksy jako sp_ids .
combiner Łańcuch określający op redukcji. Obecnie „średni”, „sqrtn” i „Suma” są obsługiwane. „Suma” oblicza ważoną sumę zatapiania wynikami dla każdego wiersza. „Średni” jest sumą ważoną podzielona przez całkowitą masę. „Sqrtn” jest sumą ważoną podzielona przez pierwiastek kwadratowy z sumy kwadratów ciężarami. Domyślnie mean .
max_norm Jeśli nie None każdy osadzanie jest obcięty, jeśli jego l2-norma jest większy niż ta wartość, przed połączeniem.
name Opcjonalna nazwa op.

Gęsta napinacz stanowiących Połączone zanurzeń dla rzadkich identyfikatorów. Dla każdego wiersza w gęstym tensora przedstawiony sp_ids , wygląd op W górę zanurzeń dla wszystkich identyfikatorów w tym rzędzie, namnaża je za odpowiadającą masie i łączy te zanurzeń zgodnie.

Innymi słowy, jeśli

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

i

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

następnie

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

Na przykład, jeśli params jest macierz 10x20 i sp_ids / sp_weights są

 [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
 

z combiner = „średni”, a sygnał wyjściowy będzie 3x20 gdzie matryca

 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 Jeśli sp_ids nie jest SparseTensor , czy sp_weights jest ani None ani SparseTensor .
ValueError Jeśli combiner nie jest jednym z { „średni”, „sqrtn”, „Sum”}.