tf.compat.v1.nn.embedding_lookup
Извлекает эмбеддинги для заданного ids из списка тензоров.
tf.compat.v1.nn.embedding_lookup(
params,
ids,
partition_strategy='mod',
name=None,
validate_indices=True,
max_norm=None
)
Эта функция используется для параллельного извлечения данных из списка тензоров в params. Она представляет собой обобщение tf.gather, где params интерпретируется как разбиение большого тензора эмбеддингов на части. params может быть PartitionedVariable, полученным при использовании tf.compat.v1.get_variable() с разделителем.
Если len(params) > 1, каждый элемент id из ids распределяется между элементами params согласно partition_strategy. При использовании любой стратегии, если пространство идентификаторов не делится на число разделов без остатка, каждому из первых (max_id + 1) % len(params) разделов будет назначен еще один идентификатор.
Если partition_strategy равно "mod", мы назначаем каждый идентификатор разделу p = id % len(params). Например, 13 идентификаторов распределяются по 5 разделам следующим образом: [[0, 5, 10], [1, 6, 11], [2, 7, 12], [3, 8], [4, 9]]
Если partition_strategy равно "div", мы назначаем идентификаторы разделам последовательно. В этом случае 13 идентификаторов распределяются по 5 разделам следующим образом: [[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10], [11, 12]]
Если входные идентификаторы представлены рваными тензорами, переменные, разбитые на разделы, не поддерживаются, а стратегия разбиения на разделы и max_norm игнорируются. Результаты извлечения объединяются в плотный тензор. Возвращаемый тензор имеет форму shape(ids) + shape(params)[1:].
| Аргументы | |
|---|---|
params | Один тензор, представляющий полный тензор эмбеддингов, или список из P тензоров одинаковой формы, за исключением первого измерения, представляющих тензоры эмбеддингов, разбитые на части. Также может быть PartitionedVariable, созданный разбиением по измерению 0. Размер каждого элемента должен соответствовать заданному partition_strategy. |
ids | Tensor или 'RaggedTensor' с типом int32 или int64, содержащий идентификаторы для поиска в params. Внимание: индексы, выходящие за допустимые границы, приведут к неопределенному поведению, которое будет различаться на разных устройствах и в разных бэкендах. |
partition_strategy | Строка, задающая стратегию разбиения на разделы; имеет значение, если len(params) > 1. В настоящее время поддерживаются "div" и "mod". Значение по умолчанию — "mod". |
name | Имя операции (необязательно). |
validate_indices | УСТАРЕЛО. Если эта операция выполняется на CPU, значения в indices всегда проверяются на принадлежность допустимому диапазону. Если операция выполняется на GPU, индексы, выходящие за допустимые границы, приводят к безопасному, но не специфицированному поведению, которое может включать возникновение ошибки. |
max_norm | Если значение не равно None, эмбеддинг усекается, если его норма l2 превышает это значение. |
| Возвращает | |
|---|---|
Tensor или 'RaggedTensor' в зависимости от входных данных; тип совпадает с типом тензоров в params. |
| Вызывает исключение | |
|---|---|
ValueError | Если params пуст. |
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/compat/v1/nn/embedding_lookup