Spec-Zone.ru › TensorFlow

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, операция находит эмбеддинги для всех идентификаторов в этой строке, умножает их на соответствующие веса и объединяет эти эмбеддинги указанным способом.

Иными словами, если

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="mean" выходом будет матрица 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 пуст.

© 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

Spec-Zone.ru

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