Spec-Zone.ru › TensorFlow

tf.random.fixed_unigram_candidate_sampler

Выборка набора классов с использованием предоставленного (фиксированного) базового распределения.

Просмотр псевдонимов

Основные псевдонимы

tf.nn.fixed_unigram_candidate_sampler

Псевдонимы совместимости для миграции

См. Руководство по миграции для получения дополнительных сведений.

tf.compat.v1.nn.fixed_unigram_candidate_sampler, tf.compat.v1.random.fixed_unigram_candidate_sampler

tf.random.fixed_unigram_candidate_sampler(
    true_classes,
    num_true,
    num_sampled,
    unique,
    range_max,
    vocab_file='',
    distortion=1.0,
    num_reserved_ids=0,
    num_shards=1,
    shard=0,
    unigrams=(),
    seed=None,
    name=None
)

Эта операция случайным образом выбирает тензор извлеченных классов (sampled_candidates) из диапазона целых чисел [0, range_max).

См. Справочник по алгоритмам выборки кандидатов для краткого курса по выборке кандидатов.

Элементы sampled_candidates выбираются без замены (если unique=True) или с заменой (если unique=False) из базового распределения.

Базовое распределение считывается из файла или передаётся в виде массива в памяти. Также есть возможность исказить распределение, применив степень искажения к весам.

Кроме того, эта операция возвращает тензоры 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 Tensor типа int64 и формы [batch_size, num_true]. Целевые классы.
num_true int. Количество целевых классов на пример обучения.
num_sampled int. Количество классов для случайной выборки.
unique bool. Определяет, уникальны ли все извлечённые классы в партии.
range_max int. Количество возможных классов.
vocab_file Каждая допустимая строка в этом файле (которая должна иметь формат, похожий на CSV) соответствует допустимому идентификатору слова. Идентификаторы упорядочены последовательно, начиная с num_reserved_ids. Ожидается, что последний элемент в каждой строке будет значением, соответствующим счётчику или относительной вероятности. Ровно один из vocab_file и unigrams должен быть передан в эту операцию.
distortion Искажение используется для искажения распределения вероятностей униграмм. Каждый вес сначала возводится в степень искажения, прежде чем быть добавленным в внутреннее распределение униграмм. В результате distortion = 1.0 даёт обычную выборку униграмм (как определено файлом vocab), а distortion = 0.0 — равномерное распределение.
num_reserved_ids Пользователи могут по желанию добавить некоторые зарезервированные идентификаторы в диапазоне [0, num_reserved_ids). Один из вариантов использования заключается в том, что специальный токен неизвестного слова используется как ID 0. У этих идентификаторов будет вероятность выборки 0.
num_shards Генератор случайных чисел может использоваться для выборки из подмножества исходного диапазона для ускорения всего вычисления с помощью параллелизма. Этот параметр (вместе с shard) указывает количество разделов, используемых в общем вычислении.
shard Генератор случайных чисел может использоваться для выборки из подмножества исходного диапазона для ускорения всего вычисления с помощью параллелизма. Этот параметр (вместе с num_shards) указывает номер конкретного раздела операции при использовании разделения.
unigrams Список подсчётов или вероятностей униграмм, по одному на ID в последовательном порядке. Ровно один из vocab_file и unigrams должен быть передан в эту операцию.
seed int. Семена, специфичные для операции. По умолчанию 0.
name Имя операции (необязательно).
Возвращаемые значения
sampled_candidates Тензор типа int64 и формы [num_sampled]. Извлечённые классы. Как отмечено выше, sampled_candidates может перекрываться с истинными классами.
true_expected_count Тензор типа float. Такая же форма, как у true_classes. Ожидаемые счётчики по распределению выборки для каждого из true_classes.
sampled_expected_count Тензор типа 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/fixed_unigram_candidate_sampler

Spec-Zone.ru

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