tensorflow::ops::FixedUnigramCandidateSampler
#include <candidate_sampling_ops.h>Genera etichette per il campionamento dei candidati con una distribuzione unigramma appresa.
Riepilogo
Un campionatore di unigrammi potrebbe utilizzare una distribuzione unigramma fissa letta da un file o passata come array in memoria, invece di costruire la distribuzione a partire dai dati in tempo reale. Esiste anche un'opzione per distorcere la distribuzione applicando un fattore di distorsione ai pesi.
Il file del vocabolario deve essere in un formato simile a CSV, con l'ultimo campo che indica il peso associato alla parola.
Per ogni batch, questa operazione seleziona un singolo insieme di etichette candidate campionate.
I vantaggi del campionamento dei candidati per batch sono la semplicità e la possibilità di una moltiplicazione efficiente di matrici dense. Lo svantaggio è che i candidati campionati devono essere scelti indipendentemente dal contesto e dalle etichette reali.
Argomentazioni:
- ambito: un oggetto Scope
- true_classes: Una matrice batch_size * num_true, in cui ogni riga contiene gli ID delle num_true target_classes nell'etichetta originale corrispondente.
- num_true: Numero di etichette vere per contesto.
- num_sampled: Numero di candidati da campionare in modo casuale.
- unico: Se unico è vero, campioniamo con rifiuto, in modo che tutti i candidati campionati in un batch siano unici. Ciò richiede un'approssimazione per stimare le probabilità di campionamento post-rifiuto.
- range_max: Il campionatore selezionerà numeri interi dall'intervallo [0, range_max).
Attributi opzionali (vedere Attrs ):
- vocab_file: Ogni riga valida in questo file (che dovrebbe avere un formato simile a CSV) corrisponde a un ID di parola valido. Gli ID sono in ordine sequenziale, a partire da num_reserved_ids. L'ultima voce di ogni riga dovrebbe essere un valore corrispondente al conteggio o alla probabilità relativa. Esattamente uno tra vocab_file e unigrams deve essere passato a questa operazione.
- Distorsione: La distorsione viene utilizzata per alterare la distribuzione di probabilità degli unigrammi. Ciascun peso viene prima elevato alla potenza della distorsione prima di essere aggiunto alla distribuzione interna degli unigrammi. Di conseguenza, una distorsione = 1,0 produce un campionamento regolare degli unigrammi (come definito dal file del vocabolario), mentre una distorsione = 0,0 produce una distribuzione uniforme.
- num_reserved_ids: Gli utenti possono facoltativamente aggiungere alcuni ID riservati nell'intervallo [0, ..., num_reserved_ids). Un caso d'uso è quello di utilizzare un token di parola sconosciuta speciale come ID 0. Questi ID avranno una probabilità di campionamento pari a 0.
- num_shards: È possibile utilizzare un campionatore per campionare da un sottoinsieme dell'intervallo originale al fine di velocizzare l'intero calcolo tramite il parallelismo. Questo parametro (insieme a 'shard') indica il numero di partizioni utilizzate nel calcolo complessivo.
- shard: Un campionatore può essere utilizzato per campionare da un sottoinsieme dell'intervallo originale al fine di velocizzare l'intero calcolo tramite il parallelismo. Questo parametro (insieme a 'num_shards') indica il numero di partizione specifico di un'operazione di campionamento, quando viene utilizzato il partizionamento.
- unigrammi: Un elenco di conteggi o probabilità di unigrammi, uno per ID in ordine sequenziale. Esattamente uno tra vocab_file e unigrammi deve essere passato a questa operazione.
- seed: Se seed o seed2 sono impostati su un valore diverso da zero, il generatore di numeri casuali viene inizializzato con il seed specificato. Altrimenti, viene inizializzato con un seed casuale.
- seed2: Un secondo seme per evitare collisioni tra i semi.
Resi:
-
Outputsampled_candidates: un vettore di lunghezza num_sampled, in cui ogni elemento è l'ID di un candidato campionato. -
Outputtrue_expected_count: una matrice batch_size * num_true, che rappresenta il numero di volte in cui ci si aspetta che ciascun candidato si verifichi in un batch di candidati campionati. Se unique=true, si tratta di una probabilità. -
Outputsampled_expected_count: Un vettore di lunghezza num_sampled, per ogni candidato campionato, che rappresenta il numero di volte in cui ci si aspetta che il candidato si verifichi in un batch di candidati campionati. Se unique=true, allora si tratta di una probabilità.
Costruttori e distruttori | |
|---|---|
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) |
attributi pubblici | |
|---|---|
operation | |
sampled_candidates | |
sampled_expected_count | |
true_expected_count | |
Funzioni statiche pubbliche | |
|---|---|
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) | |
Strutture | |
|---|---|
| tensorflow::ops::FixedUnigramCandidateSampler::Attrs | Impostatori di attributi opzionali per FixedUnigramCandidateSampler . |
attributi pubblici
operazione
Operation operation
candidati campionati
::tensorflow::Output sampled_candidates
conteggio_previsto_campionato
::tensorflow::Output sampled_expected_count
vero_conteggio_atteso
::tensorflow::Output true_expected_count
Funzioni pubbliche
Campionatore di candidati Unigram fisso
FixedUnigramCandidateSampler( const ::tensorflow::Scope & scope, ::tensorflow::Input true_classes, int64 num_true, int64 num_sampled, bool unique, int64 range_max )
Campionatore di candidati Unigram fisso
FixedUnigramCandidateSampler( const ::tensorflow::Scope & scope, ::tensorflow::Input true_classes, int64 num_true, int64 num_sampled, bool unique, int64 range_max, const FixedUnigramCandidateSampler::Attrs & attrs )
Funzioni statiche pubbliche
Distorsione
Attrs Distortion( float x )
Numero di ID riservati
Attrs NumReservedIds( int64 x )
NumShards
Attrs NumShards( int64 x )
Seme
Attrs Seed( int64 x )
Seed2
Attrs Seed2( int64 x )
Coccio
Attrs Shard( int64 x )
Unigrammi
Attrs Unigrams( const gtl::ArraySlice< float > & x )
VocabFile
Attrs VocabFile( StringPiece x )