tf.random.learned_unigram_candidate_sampler
Выборка набора классов из распределения, обученного во время обучения.
tf.random.learned_unigram_candidate_sampler(
true_classes,
num_true,
num_sampled,
unique,
range_max,
seed=None,
name=None
)
Эта операция случайным образом выбирает тензор из выборки классов (sampled_candidates) из диапазона целых чисел [0, range_max).
См. Справочник по алгоритмам выборки кандидатов для краткого курса по выборке кандидатов.
Элементы sampled_candidates выбираются без возвращения (если unique=True) или с возвращением (если unique=False) из базового распределения.
Базовое распределение для этой операции строится динамически во время обучения. Это распределение униграммы по целевым классам, которые наблюдались до сих пор во время обучения. Каждое целое число в [0, range_max) начинается с веса 1 и увеличивается на 1 каждый раз, когда оно встречается в качестве целевого класса. Базовое распределение не сохраняется в контрольных точках, поэтому оно сбрасывается при перезагрузке модели.
Кроме того, эта операция возвращает тензоры true_expected_count и sampled_expected_count, представляющие число раз, когда каждый из целевых классов (true_classes) и отобранных классов (sampled_candidates) ожидается, что они появятся в среднем тензоре отобранных классов. Эти значения соответствуют Q(y|x), определенному в Справочнике по алгоритмам выборки кандидатов. Если unique=True, тогда это вероятности после отбраковки, и мы вычисляем их приближенно.
Обратите внимание, что эта функция (а также другие *_candidate_sampler функции) предоставляет вам только компоненты для реализации различных алгоритмов выборки кандидатов, указанных в большой таблице в Справочнике по алгоритмам выборки кандидатов. Вам все равно нужно самостоятельно реализовать алгоритмы.
Например, согласно этой таблице, фраза «отрицательные примеры» может иметь разное значение в разных алгоритмах. Например, в NCE «отрицательные примеры» означают S_i (что просто отобранные классы), которые могут перекрываться с истинными классами, тогда как в Sampled Logistic «отрицательные примеры» означают S_i - T_i, которые исключают истинные классы. Возвращаемое значение sampled_candidates соответствует S_i, а не какому-либо конкретному определению «отрицательных примеров» в каком-либо конкретном алгоритме. Вам нужно выбрать алгоритм и рассчитать «отрицательные примеры», определенные этим алгоритмом (например, S_i - T_i).
Еще один пример, аргумент true_classes предназначен для вычисления выходных данных true_expected_count (как побочного продукта основного вычисления этой функции), которые могут потребоваться некоторым алгоритмам (согласно этой таблице). Он не предназначен для исключения истинных классов в возвращаемом значении sampled_candidates. Снова этот шаг специфичен для алгоритма и должен быть выполнен вами.
| Аргументы | |
|---|---|
true_classes | A Tensor типа int64 и формы [batch_size, num_true]. Целевые классы. |
num_true | Целое число. Число целевых классов на пример обучения. |
num_sampled | Целое число. Число классов для случайной выборки. |
unique | Логическое значение. Определяет, являются ли все отобранные классы в пакет уникальными. |
range_max | Целое число. Количество возможных классов. |
seed | Целое число. Семена для специфичных для операции операций. По умолчанию 0. |
name | Строка. Имя операции (необязательно). |
| Возвращаемые значения | |
|---|---|
sampled_candidates | A tensor типа int64 и формы [num_sampled]. Отобранные классы. Как отмечено выше, sampled_candidates может перекрываться с истинными классами. |
true_expected_count | A tensor типа float. Такая же форма, как у true_classes. Ожидаемые подсчеты по распределению выборки для каждого из true_classes. |
sampled_expected_count | A tensor типа float. Такая же форма, как у sampled_candidates. Ожидаемые подсчеты по распределению выборки для каждого из sampled_candidates. |
© 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/random/learned_unigram_candidate_sampler