tf.compat.v1.nn.safe_embedding_lookup_sparse
Поиск результатов вложения, учитывая недопустимые идентификаторы и пустые признаки.
tf.compat.v1.nn.safe_embedding_lookup_sparse(
embedding_weights,
sparse_ids,
sparse_weights=None,
combiner='mean',
default_id=None,
name=None,
partition_strategy='div',
max_norm=None,
allow_fast_lookup=False
)
Разделенное вложение в embedding_weights должно иметь одинаковую форму, за исключением первого измерения. Первое измерение допускается изменять, так как размер словаря не обязательно кратен P. embedding_weights может быть PartitionedVariable, как возвращается при использовании tf.compat.v1.get_variable() с разделителем.
Недопустимые идентификаторы (< 0) удаляются из входных идентификаторов и весов, а также любые идентификаторы с неотрицательными весами. Для записи без признаков возвращается вектор вложения для default_id, или нулевой вектор, если default_id не предоставлен.
Идентификаторы и веса могут быть многомерными SparseTensor или RaggedTensor с рангом 2. Для SpareTensor с выровненными влево ненулевыми записями, которые можно описать как RaggedTensor, использование RaggedTensor может повысить производительность. Вложения всегда агрегируются по последнему измерению.
| Аргументы | |
|---|---|
embedding_weights | Один тензор, представляющий полный тензор вложения, или список тензоров, имеющих одинаковую форму, за исключением первого измерения, представляющих фрагментированные тензоры вложения. Также, PartitionedVariable, созданный путем разбиения по измерению 0. Каждый элемент должен иметь соответствующий размер для заданного partition_strategy. |
sparse_ids | SparseTensor формы [d_0, d_1, ..., d_n], содержащий идентификаторы, где d_0 обычно размер пакета, или RaggedTensor с рангом 2. |
sparse_weights | SparseTensor или RaggedTensor того же типа и формы, что и sparse_ids, содержащий плавающие веса, соответствующие sparse_ids, или None, если все веса предполагаются равными 1,0. |
combiner | Строка, определяющая способ объединения результатов вложения для каждой записи. В настоящее время поддерживаются "mean", "sqrtn" и "sum", по умолчанию используется "mean". |
default_id | Идентификатор, используемый для записи без признаков. |
name | Имя для этой операции (необязательно). |
partition_strategy | Строка, определяющая стратегию разбиения. В настоящее время поддерживаются "div" и "mod". По умолчанию используется "div". |
max_norm | Если не None, все вложения нормируются по l2 до max_norm перед объединением. |
allow_fast_lookup | Необязательный логический параметр, определяющий, разрешить ли упрощенные поиски вложений, когда params представляет собой один тензор, а max_norm является None. Установка этого флага в True во время обучения может привести к использованию плотных градиентов с увеличенной занимаемой памятью. |
| Возвращаемое значение | |
|---|---|
Плотное тензорное представление объединенных вложений для разреженных идентификаторов. Для каждой строки в плотном тензоре, представленном sp_ids, операция ищет вложения для всех идентификаторов в этой строке, умножает их на соответствующий вес и объединяет эти вложения в соответствии с указанными параметрами. Другими словами, если
и
тогда
Например, если параметры представляют собой матрицу 10x20, а sp_ids / sp_weights являются [0, 0]: id 1, weight 2.0 [0, 1]: id 3, weight 0.5 [1, 0]: id -1, weight 1.0 [2, 3]: id 1, weight 3.0
с 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 |
| Исключения | |
|---|---|
ValueError | если embedding_weights пустое. |
© 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/safe_embedding_lookup_sparse