tensorflow::ops::FixedUnigramCandidateSampler
#include <candidate_sampling_ops.h>Gera rótulos para amostragem de candidatos com uma distribuição de unigramas aprendida.
Resumo
Um amostrador de unigramas pode usar uma distribuição fixa de unigramas lida de um arquivo ou passada como um array na memória, em vez de construir a distribuição a partir de dados em tempo real. Há também a opção de distorcer a distribuição aplicando um fator de distorção aos pesos.
O arquivo de vocabulário deve estar em formato semelhante a CSV, com o último campo indicando o peso associado à palavra.
Para cada lote, esta operação seleciona um único conjunto de rótulos candidatos amostrados.
As vantagens de amostrar candidatos por lote são a simplicidade e a possibilidade de multiplicação eficiente de matrizes densas. A desvantagem é que os candidatos amostrados devem ser escolhidos independentemente do contexto e dos rótulos verdadeiros.
Argumentos:
- escopo: Um objeto de escopo
- true_classes: Uma matriz batch_size * num_true, na qual cada linha contém os IDs das num_true target_classes no rótulo original correspondente.
- num_true: Número de rótulos verdadeiros por contexto.
- num_sampled: Número de candidatos a serem amostrados aleatoriamente.
- único: Se a condição "único" for verdadeira, realizamos a amostragem com rejeição, de modo que todos os candidatos amostrados em um lote sejam únicos. Isso requer alguma aproximação para estimar as probabilidades de amostragem pós-rejeição.
- range_max: O amostrador irá amostrar números inteiros do intervalo [0, range_max).
Atributos opcionais (ver Attrs ):
- vocab_file: Cada linha válida neste arquivo (que deve ter um formato semelhante a CSV) corresponde a um ID de palavra válido. Os IDs estão em ordem sequencial, começando por num_reserved_ids. A última entrada em cada linha deve ser um valor correspondente à contagem ou probabilidade relativa. Exatamente um dos arquivos vocab_file e unigrams precisa ser passado para esta operação.
- Distorção: A distorção é usada para enviesar a distribuição de probabilidade dos unigramas. Cada peso é primeiro elevado à potência da distorção antes de ser adicionado à distribuição interna dos unigramas. Como resultado, distorção = 1,0 produz uma amostragem regular de unigramas (conforme definido pelo arquivo de vocabulário), e distorção = 0,0 produz uma distribuição uniforme.
- num_reserved_ids: Opcionalmente, alguns IDs reservados podem ser adicionados pelos usuários no intervalo [0, ..., num_reserved_ids). Um exemplo de uso é o de um token de palavra desconhecida específico como ID 0. Esses IDs terão uma probabilidade de amostragem de 0.
- num_shards: Um sampler pode ser usado para amostrar um subconjunto do intervalo original, a fim de acelerar todo o cálculo por meio de paralelismo. Este parâmetro (juntamente com 'shard') indica o número de partições que estão sendo usadas no cálculo geral.
- shard: Um sampler pode ser usado para amostrar um subconjunto do intervalo original, a fim de acelerar todo o cálculo por meio de paralelismo. Este parâmetro (juntamente com 'num_shards') indica o número da partição específica de uma operação de sampler, quando o particionamento está sendo usado.
- unigrams: Uma lista de contagens ou probabilidades de unigramas, um por ID em ordem sequencial. Exatamente um dos parâmetros vocab_file e unigrams deve ser passado para esta operação.
- Semente: Se `seed` ou `seed2` forem definidos como diferentes de zero, o gerador de números aleatórios será inicializado com a semente fornecida. Caso contrário, será inicializado com uma semente aleatória.
- seed2: Uma segunda semente para evitar colisão de sementes.
Devoluções:
-
Outputsampled_candidates: Um vetor de comprimento num_sampled, em que cada elemento é o ID de um candidato amostrado. -
Outputtrue_expected_count: Uma matriz batch_size * num_true, representando o número de vezes que cada candidato deve ocorrer em um lote de candidatos amostrados. Se unique=true, então esta é uma probabilidade. -
Outputsampled_expected_count: Um vetor de comprimento num_sampled, para cada candidato amostrado representando o número de vezes que o candidato deve ocorrer em um lote de candidatos amostrados. Se unique=true, então esta é uma probabilidade.
Construtores e Destrutores | |
|---|---|
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) |
Atributos públicos | |
|---|---|
operation | |
sampled_candidates | |
sampled_expected_count | |
true_expected_count | |
Funções estáticas públicas | |
|---|---|
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) | |
Estruturas | |
|---|---|
| tensorflow::ops::FixedUnigramCandidateSampler::Attrs | Definidores de atributos opcionais para FixedUnigramCandidateSampler . |
Atributos públicos
operação
Operation operation
candidatos_amostrados
::tensorflow::Output sampled_candidates
contagem_esperada_amostrada
::tensorflow::Output sampled_expected_count
contagem_esperada_verdadeira
::tensorflow::Output true_expected_count
Funções públicas
Amostrador de candidatos a unigramas fixos
FixedUnigramCandidateSampler( const ::tensorflow::Scope & scope, ::tensorflow::Input true_classes, int64 num_true, int64 num_sampled, bool unique, int64 range_max )
Amostrador de candidatos a unigramas fixos
FixedUnigramCandidateSampler( const ::tensorflow::Scope & scope, ::tensorflow::Input true_classes, int64 num_true, int64 num_sampled, bool unique, int64 range_max, const FixedUnigramCandidateSampler::Attrs & attrs )
Funções estáticas públicas
Distorção
Attrs Distortion( float x )
NumReservedIds
Attrs NumReservedIds( int64 x )
NumShards
Attrs NumShards( int64 x )
Semente
Attrs Seed( int64 x )
Semente2
Attrs Seed2( int64 x )
Fragmento
Attrs Shard( int64 x )
Unigramas
Attrs Unigrams( const gtl::ArraySlice< float > & x )
Arquivo de vocabulário
Attrs VocabFile( StringPiece x )