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 обеспечивает обычную выборку униграмм (в соответствии с файлом словаря), а distortion = 0.0 — равномерное распределение.
num_reserved_ids Пользователь может при необходимости добавить некоторые зарезервированные идентификаторы в диапазоне [0, num_reserved_ids). Например, специальный токен неизвестного слова может использоваться в качестве идентификатора 0. Вероятность выборки этих идентификаторов равна 0.
num_shards Для ускорения вычислений за счет параллелизма выборка может выполняться из подмножества исходного диапазона. Этот параметр (вместе с shard) указывает количество разделов, используемых при вычислениях.
shard Для ускорения вычислений за счет параллелизма выборка может выполняться из подмножества исходного диапазона. Этот параметр (вместе с num_shards) указывает номер конкретного раздела операции при разбиении на разделы.
unigrams Список количеств или вероятностей униграмм, по одному на каждый идентификатор в последовательном порядке. Этой операции следует передать ровно один из аргументов 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