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
)
Разделенное вложение в embedding_weights должно иметь одинаковую форму, за исключением первого измерения. Первое измерение разрешается варьироваться, так как размер словаря не обязательно является кратным P. embedding_weights может быть PartitionedVariable, как возвращается при использовании tf.compat.v1.get_variable() с разделителем.
Недействительные идентификаторы (< 0) удаляются из входных идентификаторов и весов, а также любые идентификаторы с весом, не являющимся положительным. Для записи без характеристик возвращается вектор вложения для default_id, или нулевой вектор, если default_id не указан.
Идентификаторы и веса могут быть многомерными. Вложения всегда агрегируются по последнему измерению.
| Аргументы | |
|---|---|
embedding_weights | Единственный тензор, представляющий полный тензор вложения, или список тензоров, все с одинаковой формой, за исключением первого измерения, представляющие фрагментированные тензоры вложения. В качестве альтернативы, PartitionedVariable, созданный путем разбиения по размеру 0. Каждый элемент должен иметь соответствующий размер для данного partition_strategy. |
sparse_ids | SparseTensor формы [d_0, d_1, ..., d_n], содержащий идентификаторы. d_0 обычно равен размеру пакет. |
sparse_weights | SparseTensor той же формы, что и 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 перед объединением. |
| Возвращаемое значение | |
|---|---|
Плотный тензор, представляющий объединенные вложения для разреженных идентификаторов. Для каждой строки в плотном тензоре, представленном sp_ids, операция ищет вложения для всех идентификаторов в этой строке, умножает их на соответствующий вес и объединяет эти вложения, как указано. Другими словами, если
и
тогда
Например, если params — матрица 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/versions/r2.9/api_docs/python/tf/compat/v1/nn/safe_embedding_lookup_sparse