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/versions/r2.9/api_docs/python/tf/compat/v1/nn/embedding_lookup