Spec-Zone.ru › TensorFlow 2.4

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 Строка, определяющая, как комбинировать результаты вложения для каждой записи. В настоящее время поддерживаются "среднее", "sqrtn" и "сумма", по умолчанию используется "среднее".
default_id Идентификатор, который нужно использовать для записи без признаков.
name Имя для этой операции (необязательно).
partition_strategy Строка, определяющая стратегию разбиения. В настоящее время поддерживаются "div" и "mod". По умолчанию "div".
max_norm Если не None, все вложения нормализуются по L2 до max_norm перед объединением.
Возвращает
Плотный тензор, представляющий объединённые вложения для разреженных идентификаторов. Для каждой строки в плотном тензоре, представленном sp_ids, операция ищет вложения для всех идентификаторов в этой строке, умножает их на соответствующий вес и объединяет эти вложения, как указано.

Другими словами, если

shape(combined embedding_weights) = [p0, p1, ..., pm]

и

shape(sparse_ids) = shape(sparse_weights) = [d0, d1, ..., dn]

то

shape(output) = [d0, d1, ... dn-1, p1, ..., pm].

Например, если 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

default_id равно 0.

с combiner="среднее", то выход будет матрицей 3x20, где

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 пустой.

© 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/r2.3/api_docs/python/tf/compat/v1/nn/safe_embedding_lookup_sparse

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API