tensorflow::ops::FixedUnigramCandidateSampler

#include <candidate_sampling_ops.h>

Génère des étiquettes pour l'échantillonnage des candidats avec une distribution unigramme apprise.

Résumé

Un échantillonneur unigramme peut utiliser une distribution unigramme fixe, lue depuis un fichier ou fournie sous forme de tableau en mémoire, au lieu de construire la distribution à partir des données en temps réel. Il est également possible de biaiser la distribution en appliquant un coefficient de distorsion aux poids.

Le fichier de vocabulaire doit être au format CSV, le dernier champ indiquant le poids associé au mot.

Pour chaque lot, cette opération sélectionne un seul ensemble d'étiquettes candidates échantillonnées.

L'échantillonnage par lots de candidats présente l'avantage d'être simple et de permettre une multiplication matricielle dense efficace. Son inconvénient réside dans le fait que les candidats échantillonnés doivent être choisis indépendamment du contexte et des étiquettes réelles.

Arguments :

  • portée : un objet Scope
  • true_classes : Une matrice batch_size * num_true, dans laquelle chaque ligne contient les identifiants des num_true target_classes dans l’étiquette d’origine correspondante.
  • num_true : Nombre d’étiquettes vraies par contexte.
  • num_sampled : Nombre de candidats à échantillonner aléatoirement.
  • unique : Si la condition d’unicité est vraie, nous effectuons un échantillonnage avec rejet, de sorte que tous les candidats échantillonnés dans un lot soient uniques. Cela nécessite une approximation pour estimer les probabilités d’échantillonnage après rejet.
  • range_max : L'échantillonneur échantillonnera des entiers de l'intervalle [0, range_max).

Attributs optionnels (voir Attrs ) :

  • vocab_file : Chaque ligne valide de ce fichier (au format CSV) correspond à un identifiant de mot valide. Les identifiants sont séquentiels, à partir de num_reserved_ids. La dernière valeur de chaque ligne doit correspondre au nombre d'occurrences ou à la probabilité relative. Seul l'un des deux, vocab_file ou unigrams, doit être fourni à cette opération.
  • Distorsion : La distorsion sert à fausser la distribution de probabilité des unigrammes. Chaque poids est d'abord élevé à la puissance de la distorsion avant d'être ajouté à la distribution interne des unigrammes. Ainsi, une distorsion de 1,0 correspond à un échantillonnage régulier des unigrammes (tel que défini par le fichier de vocabulaire), et une distorsion de 0,0 à une distribution uniforme.
  • num_reserved_ids : Les utilisateurs peuvent ajouter, en option, des identifiants réservés compris entre 0 et num_reserved_ids. Par exemple, un jeton de mot inconnu spécial peut être utilisé comme identifiant 0. Ces identifiants auront une probabilité d’échantillonnage de 0.
  • num_shards : Un échantillonneur peut être utilisé pour prélever un échantillon dans un sous-ensemble de la plage d'origine afin d'accélérer le calcul global grâce au parallélisme. Ce paramètre (associé à « shard ») indique le nombre de partitions utilisées dans le calcul global.
  • shard : Un échantillonneur peut être utilisé pour prélever un échantillon dans un sous-ensemble de la plage d'origine afin d'accélérer le calcul global grâce au parallélisme. Ce paramètre (associé à « num_shards ») indique le numéro de partition spécifique d'une opération d'échantillonnage, lorsque le partitionnement est utilisé.
  • unigrams : Liste des occurrences ou des probabilités d’unigrammes, une par identifiant et dans l’ordre séquentiel. Seule l’une des options vocab_file ou unigrams doit être transmise à cette opération.
  • Graine initiale : si l’une des valeurs de graine initiale ou de graine2 est différente de zéro, le générateur de nombres aléatoires est initialisé avec la graine fournie. Sinon, il est initialisé avec une graine aléatoire.
  • seed2 : Une deuxième graine pour éviter les collisions entre les graines.

Retours :

  • Output sampled_candidates : Un vecteur de longueur num_sampled, dans lequel chaque élément est l’identifiant d’un candidat échantillonné.
  • Output true_expected_count : une matrice batch_size * num_true représentant le nombre d’occurrences attendues de chaque candidat dans un lot de candidats échantillonnés. Si unique=true, il s’agit d’une probabilité.
  • Output sampled_expected_count : Un vecteur de longueur num_sampled, pour chaque candidat échantillonné, représentant le nombre de fois où ce candidat est susceptible d’apparaître dans un lot de candidats échantillonnés. Si unique=true, il s’agit alors d’une probabilité.

Constructeurs et destructeurs

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)

attributs publics

operation
sampled_candidates
sampled_expected_count
true_expected_count

fonctions statiques publiques

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)

Structures

tensorflow::ops::FixedUnigramCandidateSampler::Attrs

Définiteurs d'attributs optionnels pour FixedUnigramCandidateSampler .

attributs publics

opération

Operation operation

candidats échantillonnés

::tensorflow::Output sampled_candidates

nombre_attendu_échantillonné

::tensorflow::Output sampled_expected_count

vrai_compte_attendu

::tensorflow::Output true_expected_count

fonctions publiques

Échantillonneur de candidats Unigrammes fixes

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

Échantillonneur de candidats Unigrammes fixes

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

fonctions statiques publiques

Distorsion

Attrs Distortion(
  float x
)

Nombre d'identifiants réservés

Attrs NumReservedIds(
  int64 x
)

NumShards

Attrs NumShards(
  int64 x
)

Graine

Attrs Seed(
  int64 x
)

Graine2

Attrs Seed2(
  int64 x
)

Tesson

Attrs Shard(
  int64 x
)

Unigrammes

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

Fichier de vocabulaire

Attrs VocabFile(
  StringPiece x
)