flujo tensor:: operaciones:: FijoUnigramCandidateSampler
#include <candidate_sampling_ops.h>
Genera etiquetas para el muestreo de candidatos con una distribución de unigramas aprendida.
Resumen
Un muestreador de unigramas podría usar una distribución de unigramas fija leída de un archivo o pasada como una matriz en memoria en lugar de construir la distribución a partir de datos sobre la marcha. También existe la opción de sesgar la distribución aplicando un poder de distorsión a los pesos.
El archivo de vocabulario debe estar en formato similar a CSV, siendo el último campo el peso asociado a la palabra.
Para cada lote, esta operación selecciona un único conjunto de etiquetas candidatas de muestra.
Las ventajas de muestrear candidatos por lote son la simplicidad y la posibilidad de una multiplicación eficiente de matrices densas. La desventaja es que los candidatos de la muestra deben elegirse independientemente del contexto y de las etiquetas verdaderas.
Argumentos:
- alcance: un objeto de alcance
- true_classes: una matriz de tamaño de lote * num_true, en la que cada fila contiene los ID de num_true target_classes en la etiqueta original correspondiente.
- num_true: número de etiquetas verdaderas por contexto.
- num_sampled: número de candidatos para muestrear aleatoriamente.
- único: si único es verdadero, tomamos muestras con rechazo, de modo que todos los candidatos muestreados en un lote sean únicos. Esto requiere cierta aproximación para estimar las probabilidades de muestreo posteriores al rechazo.
- range_max: el muestreador muestreará números enteros del intervalo [0, range_max).
Atributos opcionales (ver Attrs
):
- vocab_file: cada línea válida en este archivo (que debe tener un formato similar a CSV) corresponde a una identificación de palabra válida. Los ID están en orden secuencial, comenzando desde num_reserved_ids. Se espera que la última entrada en cada línea sea un valor correspondiente al recuento o probabilidad relativa. Se debe pasar exactamente uno de vocab_file y unigramas a esta operación.
- distorsión: La distorsión se utiliza para sesgar la distribución de probabilidad unigramo. Cada peso se eleva primero a la potencia de distorsión antes de agregarlo a la distribución interna de unigramas. Como resultado, la distorsión = 1,0 proporciona un muestreo de unigrama regular (como se define en el archivo de vocabulario) y la distorsión = 0,0 proporciona una distribución uniforme.
- num_reserved_ids: Opcionalmente, los usuarios pueden agregar algunos ID reservados en el rango [0, ..., num_reserved_ids). Un caso de uso es que se utiliza un token especial de palabra desconocida como ID 0. Estos ID tendrán una probabilidad de muestreo de 0.
- num_shards: se puede utilizar un muestreador para muestrear de un subconjunto del rango original para acelerar todo el cálculo mediante el paralelismo. Este parámetro (junto con 'shard') indica el número de particiones que se utilizan en el cálculo general.
- fragmento: se puede utilizar un muestreador para muestrear de un subconjunto del rango original para acelerar todo el cálculo mediante el paralelismo. Este parámetro (junto con 'num_shards') indica el número de partición particular de una operación de muestra, cuando se utiliza la partición.
- unigramas: una lista de recuentos o probabilidades de unigramas, uno por ID en orden secuencial. Se debe pasar exactamente uno de vocab_file y unigrams a esta operación.
- semilla: si seed o seed2 se configuran como distintos de cero, el generador de números aleatorios se siembra con la semilla dada. De lo contrario, se siembra con una semilla aleatoria.
- semilla2: una segunda semilla para evitar la colisión de semillas.
Devoluciones:
-
Output
sampled_candidates: un vector de longitud num_sampled, en el que cada elemento es el ID de un candidato muestreado. -
Output
true_expected_count: una matriz de tamaño de lote * num_true, que representa el número de veces que se espera que ocurra cada candidato en un lote de candidatos muestreados. Si único = verdadero, entonces se trata de una probabilidad. -
Output
sampled_expected_count: un vector de longitud num_sampled, para cada candidato muestreado que representa el número de veces que se espera que aparezca el candidato en un lote de candidatos muestreados. Si único = verdadero, entonces se trata de una probabilidad.
Constructores y destructores | |
---|---|
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 |
Funciones 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) |
estructuras | |
---|---|
tensorflow:: operaciones:: FixUnigramCandidateSampler:: Atributos | Configuradores de atributos opcionales para FixedUnigramCandidateSampler . |
Atributos públicos
operación
Operation operation
candidatos_muestreo
::tensorflow::Output sampled_candidates
recuento_expectado_muestreado
::tensorflow::Output sampled_expected_count
verdadero_recuento_esperado
::tensorflow::Output true_expected_count
Funciones públicas
FijoUnigramCandidateSampler
FixedUnigramCandidateSampler( const ::tensorflow::Scope & scope, ::tensorflow::Input true_classes, int64 num_true, int64 num_sampled, bool unique, int64 range_max )
FijoUnigramCandidateSampler
FixedUnigramCandidateSampler( const ::tensorflow::Scope & scope, ::tensorflow::Input true_classes, int64 num_true, int64 num_sampled, bool unique, int64 range_max, const FixedUnigramCandidateSampler::Attrs & attrs )
Funciones estáticas públicas
Distorsión
Attrs Distortion( float x )
NúmReservedIds
Attrs NumReservedIds( int64 x )
NumFragmentos
Attrs NumShards( int64 x )
Semilla
Attrs Seed( int64 x )
Semilla2
Attrs Seed2( int64 x )
Casco
Attrs Shard( int64 x )
Unigramas
Attrs Unigrams( const gtl::ArraySlice< float > & x )
Archivo de vocabulario
Attrs VocabFile( StringPiece x )