tensorflow::ops::FixedUnigramCandidateSampler
#include <candidate_sampling_ops.h>
Генерирует метки для выборки кандидатов с использованием обученного униграммного распределения.
Краткое описание
Сэмплер униграмм может использовать фиксированное униграммное распределение, считываемое из файла или передаваемое в виде массива в памяти, вместо того чтобы строить распределение на лету по данным. Также можно сместить распределение, применив степень искажения к весам.
Файл словаря должен иметь формат, подобный CSV, причём последнее поле должно содержать вес, соответствующий слову.
Для каждого пакета эта операция выбирает единый набор меток-кандидатов для выборки.
Преимущества выборки кандидатов для каждого пакета — простота и возможность эффективно выполнять плотное матричное умножение. Недостаток заключается в том, что выбранные кандидаты должны выбираться независимо от контекста и истинных меток.
Аргументы:
- scope: объект Scope
- true_classes: матрица размером batch_size * num_true, в каждой строке которой содержатся идентификаторы num_true целевых классов (target_classes) соответствующей исходной метки.
- num_true: количество истинных меток для каждого контекста.
- num_sampled: количество кандидатов для случайной выборки.
- unique: если значение unique равно true, выборка выполняется с отбраковкой, чтобы все выбранные кандидаты в пакете были уникальны. Для оценки вероятностей выборки после отбраковки требуется аппроксимация.
- range_max: сэмплер выбирает целые числа из интервала [0, range_max).
Необязательные атрибуты (см. Attrs):
- vocab_file: каждая допустимая строка в этом файле (формат должен быть подобен CSV) соответствует допустимому идентификатору слова. Идентификаторы следуют последовательно, начиная с num_reserved_ids. Ожидается, что последняя запись в каждой строке содержит значение, соответствующее количеству или относительной вероятности. Для этой операции необходимо передать ровно один из аргументов — vocab_file или unigrams.
- distortion: искажение используется для смещения униграммного распределения вероятностей. Каждый вес сначала возводится в степень 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: если для seed или seed2 задано ненулевое значение, генератор случайных чисел инициализируется указанным начальным значением. В противном случае он инициализируется случайным начальным значением.
- seed2: второе начальное значение для предотвращения совпадения начальных значений.
Возвращает:
-
Outputsampled_candidates: вектор длины num_sampled, каждый элемент которого является идентификатором выбранного кандидата. -
Outputtrue_expected_count: матрица размером batch_size * num_true, представляющая ожидаемое количество появлений каждого кандидата в пакете выбранных кандидатов. Если unique=true, это вероятность. -
Outputsampled_expected_count: вектор длины num_sampled, представляющий для каждого выбранного кандидата ожидаемое количество его появлений в пакете выбранных кандидатов. Если unique=true, это вероятность.
| Конструкторы и деструкторы | |
|---|---|
FixedUnigramCandidateSampler(const ::tensorflow::Scope & scope, ::tensorflow::Input true_classes, int64 num_true, int64 num_sampled, bool unique, int64 range_max) | |
FixedUnigramCandidateSampler(const ::tensorflow::Scope & scope, ::tensorflow::Input true_classes, int64 num_true, int64 num_sampled, bool unique, int64 range_max, const FixedUnigramCandidateSampler::Attrs & attrs) |
| Открытые атрибуты | |
|---|---|
operation | |
sampled_candidates | |
sampled_expected_count | |
true_expected_count | |
| Открытые статические функции | |
|---|---|
Distortion(float x) | |
NumReservedIds(int64 x) | |
NumShards(int64 x) | |
Seed(int64 x) | |
Seed2(int64 x) | |
Shard(int64 x) | |
Unigrams(const gtl::ArraySlice< float > & x) | |
VocabFile(StringPiece x) | |
| Структуры | |
|---|---|
| tensorflow::ops::FixedUnigramCandidateSampler::Attrs | Методы установки необязательных атрибутов для FixedUnigramCandidateSampler. |
Открытые атрибуты
operation
Operation operation
sampled_candidates
::tensorflow::Output sampled_candidates
sampled_expected_count
::tensorflow::Output sampled_expected_count
true_expected_count
::tensorflow::Output true_expected_count
Открытые функции
FixedUnigramCandidateSampler
FixedUnigramCandidateSampler( const ::tensorflow::Scope & scope, ::tensorflow::Input true_classes, int64 num_true, int64 num_sampled, bool unique, int64 range_max )
FixedUnigramCandidateSampler
FixedUnigramCandidateSampler( const ::tensorflow::Scope & scope, ::tensorflow::Input true_classes, int64 num_true, int64 num_sampled, bool unique, int64 range_max, const FixedUnigramCandidateSampler::Attrs & attrs )
Открытые статические функции
Distortion
Attrs Distortion( float x )
NumReservedIds
Attrs NumReservedIds( int64 x )
NumShards
Attrs NumShards( int64 x )
Seed
Attrs Seed( int64 x )
Seed2
Attrs Seed2( int64 x )
Shard
Attrs Shard( int64 x )
Unigrams
Attrs Unigrams( const gtl::ArraySlice< float > & x )
VocabFile
Attrs VocabFile( StringPiece x )
© 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/cc/class/tensorflow/ops/fixed-unigram-candidate-sampler