tensoreflusso:: ops:: Risolto il problema con UnigramCandidateSampler

#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 di unigrammi fissa letta da un file o passata come un array in memoria invece di costruire la distribuzione dai dati al volo. C'è anche un'opzione per distorcere la distribuzione applicando un potere di distorsione ai pesi.

Il file del vocabolario dovrebbe essere in formato simile a CSV, con l'ultimo campo che rappresenta il peso associato alla parola.

Per ogni batch, questa operazione seleziona un singolo set di etichette candidate campionate.

I vantaggi del campionamento dei candidati per lotto sono la semplicità e la possibilità di un'efficiente moltiplicazione della matrice densa. Lo svantaggio è che i candidati campionati devono essere scelti indipendentemente dal contesto e dalle vere etichette.

Argomenti:

  • scope: un oggetto Scope
  • true_classes: una matrice batch_size * num_true, in cui ogni riga contiene gli ID di num_true target_classes nell'etichetta originale corrispondente.
  • num_true: numero di etichette vere per contesto.
  • num_sampled: numero di candidati da campionare casualmente.
  • unico: se unico è vero, campioniamo con rifiuto, in modo che tutti i candidati campionati in un batch siano unici. Ciò richiede una certa approssimazione per stimare le probabilità di campionamento post-rifiuto.
  • range_max: il campionatore campionerà i numeri interi dall'intervallo [0, range_max).

Attributi facoltativi (vedi 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. Si prevede che l'ultima voce in ciascuna riga sia un valore corrispondente al conteggio o alla probabilità relativa. A questa operazione deve essere passato esattamente uno tra vocab_file e unigrams.
  • distorsione: la distorsione viene utilizzata per distorcere la distribuzione di probabilità dell'unigramma. Ogni peso viene prima aumentato alla potenza della distorsione prima di aggiungerlo alla distribuzione unigramma interna. Di conseguenza, distorsione = 1.0 fornisce un campionamento unigramma regolare (come definito dal file vocab) e distorsione = 0.0 fornisce una distribuzione uniforme.
  • num_reserved_ids: facoltativamente alcuni ID riservati possono essere aggiunti nell'intervallo [0, ..., num_reserved_ids) dagli utenti. Un caso d'uso è che uno speciale token di parola sconosciuta viene utilizzato come ID 0. Questi ID avranno una probabilità di campionamento pari a 0.
  • num_shards: un campionatore può essere utilizzato per campionare da un sottoinsieme dell'intervallo originale per accelerare l'intero calcolo attraverso 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 per accelerare l'intero calcolo attraverso il parallelismo. Questo parametro (insieme a 'num_shards') indica il numero di partizione particolare 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. A questa operazione dovrebbe essere passato esattamente uno tra vocab_file e unigrams.
  • seme: se seme o seme2 sono impostati su un valore diverso da zero, il generatore di numeri casuali viene seminato dal seme specificato. Altrimenti, viene seminato da un seme casuale.
  • seed2: un secondo seme per evitare la collisione del seme.

Ritorna:

  • Output sampled_candidates: un vettore di lunghezza num_sampled, in cui ogni elemento è l'ID di un candidato campionato.
  • Output true_expected_count: una matrice batch_size * num_true, che rappresenta il numero di volte in cui si prevede che ciascun candidato si presenti in un batch di candidati campionati. Se unico=vero, allora questa è una probabilità.
  • Output sampled_expected_count: un vettore di lunghezza num_sampled, per ciascun candidato campionato che rappresenta il numero di volte in cui si prevede che il candidato si presenti in un batch di candidati campionati. Se unico=vero, allora questa è 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 pubbliche statiche

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

Setter di attributi facoltativi per FixedUnigramCandidateSampler .

Attributi pubblici

operazione

Operation operation

candidati_campionati

::tensorflow::Output sampled_candidates

conteggio_previsto_campionato

::tensorflow::Output sampled_expected_count

true_expected_count

::tensorflow::Output true_expected_count

Funzioni pubbliche

Risolto il problema con UnigramCandidateSampler

 FixedUnigramCandidateSampler(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input true_classes,
  int64 num_true,
  int64 num_sampled,
  bool unique,
  int64 range_max
)

Risolto il problema con UnigramCandidateSampler

 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 pubbliche statiche

Distorsione

Attrs Distortion(
  float x
)

NumReservedId

Attrs NumReservedIds(
  int64 x
)

NumShards

Attrs NumShards(
  int64 x
)

Seme

Attrs Seed(
  int64 x
)

Seme2

Attrs Seed2(
  int64 x
)

Coccio

Attrs Shard(
  int64 x
)

Unigrammi

Attrs Unigrams(
  const gtl::ArraySlice< float > & x
)

VocabFile

Attrs VocabFile(
  StringPiece x
)