tensorflow::ops::FixedUnigramCandidateSampler
#include <candidate_sampling_ops.h>
Генерирует метки для выборки кандидатов с использованием выученной униграмной распределения.
Краткое описание
Униграмный выборщик может использовать фиксированное униграмное распределение, считанное из файла или переданное в виде массива в памяти, вместо построения распределения из данных на лету. Есть также возможность исказить распределение, применив степень искажения к весам.
Файл словаря должен быть в формате, похожем на CSV, где последнее поле — вес, связанный со словом.
Для каждой партии этот оператор выбирает один набор сэмплированных кандидатов-меток.
Преимущества выборки кандидатов по партиям — простота и возможность эффективного умножения плотных матриц. Недостаток заключается в том, что выбранные кандидаты должны выбираться независимо от контекста и истинных меток.
Аргументы:
- scope: Объект Scope
- true_classes: Матрица batch_size * num_true, в которой каждая строка содержит идентификаторы num_true целевых классов в соответствующей исходной метке.
- num_true: Количество истинных меток на контекст.
- num_sampled: Количество кандидатов для случайной выборки.
- unique: Если unique — true, мы выбираем с отбраковкой, чтобы все выбранные кандидаты в партии были уникальными. Это требует некоторого приближения для оценки вероятностей выборки после отбраковки.
- range_max: Выборщик будет выбирать целые числа из интервала [0, range_max).
Дополнительные атрибуты (см. Attrs):
- vocab_file: Каждая допустимая строка в этом файле (который должен иметь формат, похожий на CSV), соответствует допустимому идентификатору слова. Идентификаторы упорядочены последовательно, начиная с num_reserved_ids. Ожидается, что последнее поле каждой строки будет значением, соответствующим счету или относительной вероятности. Точно один из vocab_file и unigrams должен быть передан в этот оператор.
- distortion: Искажение используется для искажения униграмного распределения вероятностей. Каждый вес сначала возводится в степень искажения, прежде чем добавляться к внутреннему униграмному распределению. В результате distortion = 1.0 даёт обычную выборку униграмм (как определено в файле словаря), а distortion = 0.0 даёт равномерное распределение.
- num_reserved_ids: Пользователи могут добавить дополнительные зарезервированные идентификаторы в диапазоне [0, ..., num_reserved_ids). Одним из вариантов использования является использование специального токена неизвестного слова с идентификатором 0. У этих идентификаторов будет нулевая вероятность выборки.
- num_shards: Выборщик может использоваться для выборки из подмножества исходного диапазона, чтобы ускорить все вычисления с помощью параллелизма. Этот параметр (вместе с 'shard') указывает количество разделов, используемых в общем вычислении.
- shard: Выборщик может использоваться для выборки из подмножества исходного диапазона, чтобы ускорить все вычисления с помощью параллелизма. Этот параметр (вместе с 'num_shards') указывает конкретный номер раздела оператора выборки, когда используется разбиение.
- unigrams: Список униграммных счётчиков или вероятностей, по одному на идентификатор в последовательном порядке. Точно один из vocab_file и unigrams должен быть передан в этот оператор.
- seed: Если seed или seed2 установлены не равными нулю, генератор случайных чисел инициализируется заданным seed. В противном случае он инициализируется случайным seed.
- seed2: Второй seed для предотвращения столкновений seed.
Возвращает:
-
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 )
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r1.15/api_docs/cc/class/tensorflow/ops/fixed-unigram-candidate-sampler