tf.nn.embedding_lookup
| Посмотреть исходный код на GitHub |
Ищет ids в списке тензоров вложений.
tf.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]]
Результаты поиска конкатенируются в плотный тензор. Возвращаемый тензор имеет форму shape(ids) + shape(params)[1:].
| Аргументы | |
|---|---|
params |
Один тензор, представляющий полный тензор вложений, или список P тензоров с одинаковой формой, за исключением первого измерения, представляющих фрагментированные тензоры вложений. Или же объект PartitionedVariable, созданный путем разбиения по размерности 0. Каждый элемент должен быть соответствующего размера для заданного partition_strategy. |
ids |
Объект Tensor типа int32 или int64, содержащий идентификаторы для поиска в params |
partition_strategy |
Строка, определяющая стратегию разбиения, если len(params) > 1. В настоящее время поддерживаются "div" и "mod". По умолчанию "mod". |
name |
Имя операции (необязательно). |
validate_indices |
УСТАРЕЛО. Если эта операция назначена на процессор CPU, значения в indices всегда проверяются на соответствие диапазону. Если назначена на графический процессор GPU, индексы за пределами диапазона приводят к безопасному, но неопределённому поведению, которое может включать выброс ошибки. |
max_norm |
Если не None, каждое вложение обрезается, если его евклидова норма больше этого значения. |
| Возвращаемое значение | |
|---|---|
Тензор Tensor с тем же типом, что и тензоры в params. |
| Исключения | |
|---|---|
ValueError |
Если params пусто. |
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/nn/embedding_lookup