Spec-Zone.ru › TensorFlow

tf.compat.v1.nn.embedding_lookup_sparse

Выполняет поиск вложения для заданных идентификаторов и весов из списка тензоров.

tf.compat.v1.nn.embedding_lookup_sparse(
    params,
    sp_ids,
    sp_weights,
    partition_strategy='mod',
    name=None,
    combiner=None,
    max_norm=None,
    allow_fast_lookup=False
)

Этот оператор предполагает, что для каждой строки в плотной тензорной структуре, представленной sp_ids (т.е. нет строк с пустыми атрибутами), а все индексы sp_ids расположены в каноническом порядке строк.

sp_ids и sp_weights (если не None) являются SparseTensor или RaggedTensor с рангом 2. Для SpareTensor с левым выравниванием ненулевых элементов, которые можно описать как RaggedTensor, использование RaggedTensor может повысить производительность.

Он также предполагает, что все значения id лежат в диапазоне [0, p0), где p0 — сумма размера параметров по размерности 0.

Аргументы
params Один тензор, представляющий полный тензор вложений, или список тензоров, все с одинаковой формой, за исключением первого измерения, представляющих фрагментированные тензоры вложений. В качестве альтернативы, PartitionedVariable, созданный путем разделения по размерности 0. Каждый элемент должен быть соответствующего размера для заданного partition_strategy.
sp_ids N x M SparseTensor целочисленных идентификаторов int64, где N — обычно размер пакета, а M — произвольное или RaggedTensor с рангом 2.
sparse_weights SparseTensor или RaggedTensor того же типа и формы, что и sparse_ids, содержащие весовые коэффициенты float / double, соответствующие sparse_ids, или None, если все весовые коэффициенты предполагаются равными 1,0.
partition_strategy Строка, определяющая стратегию разбиения, важная, если len(params) > 1. В настоящее время поддерживаются "div" и "mod". По умолчанию используется "mod". Подробнее см. tf.nn.embedding_lookup.
name Необязательное имя для оператора.
combiner Строка, определяющая оператор сокращения. В настоящее время поддерживаются "mean", "sqrtn" и "sum". "sum" вычисляет взвешенную сумму результатов вложений для каждой строки. "mean" — взвешенная сумма, деленная на общий вес. "sqrtn" — взвешенная сумма, деленная на квадратный корень из суммы квадратов весов. По умолчанию mean.
max_norm Если не None, каждое вложение ограничено, если его l2-норма превышает это значение, перед объединением.
allow_fast_lookup Необязательный логический параметр, указывающий, разрешить ли упрощенные запросы вложения, когда params является единственным тензором, а max_norm является None. Установка этого флага в True во время обучения может привести к использованию плотных градиентов с увеличенным объемом памяти.
Возвращаемое значение
Плотный тензор, представляющий объединенные вложения для разреженных идентификаторов. Для каждой строки в плотном тензоре, представленном sp_ids, оператор выполняет поиск вложений для всех идентификаторов в этой строке, умножает их на соответствующий весовой коэффициент и объединяет эти вложения в соответствии со спецификацией.

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

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

и

shape(sp_ids) = shape(sp_weights) = [d0, d1]

тогда

shape(output) = [d0, 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 0, weight 1.0
[2, 3]: id 1, weight 3.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
Исключения
TypeError Если sp_ids не является SparseTensor или RaggedTensor, или если sp_weights не является ни None, ни того же типа, что и sp_ids.
ValueError Если combiner не равно одному из {"mean", "sqrtn", "sum"}.

© 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/embedding_lookup_sparse

Spec-Zone.ru

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