flux tensoriel : : opérations : : FixeUnigramCandidateSampler

#include <candidate_sampling_ops.h>

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

Résumé

Un échantillonneur d'unigramme pourrait utiliser une distribution d'unigramme fixe lue à partir d'un fichier ou transmise sous forme de tableau en mémoire au lieu de créer la distribution à partir de données à la volée. Il existe également une option permettant de fausser la distribution en appliquant un pouvoir de distorsion aux poids.

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

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

Les avantages de l’échantillonnage des candidats par lot sont la simplicité et la possibilité d’une multiplication matricielle dense efficace. L’inconvénient est que les candidats échantillonnés doivent être choisis indépendamment du contexte et des véritables étiquettes.

Arguments:

  • scope : un objet Scope
  • true_classes : une matrice batch_size * num_true, dans laquelle chaque ligne contient les ID des num_true target_classes dans l'étiquette d'origine correspondante.
  • num_true : nombre de vraies étiquettes par contexte.
  • num_sampled : nombre de candidats à échantillonner aléatoirement.
  • unique : si unique est vrai, nous échantillonnons avec rejet, de sorte que tous les candidats échantillonnés dans un lot soient uniques. Cela nécessite une certaine approximation pour estimer les probabilités d’échantillonnage après rejet.
  • range_max : l'échantillonneur échantillonnera les entiers de l'intervalle [0, range_max).

Attributs facultatifs (voir Attrs ) :

  • vocab_file : chaque ligne valide de ce fichier (qui doit avoir un format de type CSV) correspond à un identifiant de mot valide. Les identifiants sont classés dans un ordre séquentiel, en commençant par num_reserved_ids. La dernière entrée de chaque ligne devrait être une valeur correspondant au nombre ou à la probabilité relative. Exactement l'un des vocabulaire_file et unigrammes doit être transmis à cette opération.
  • distorsion : la distorsion est utilisée pour fausser la distribution de probabilité de l'unigramme. Chaque poids est d'abord augmenté à la puissance de la distorsion avant de s'ajouter à la distribution interne de l'unigramme. En conséquence, distorsion = 1,0 donne un échantillonnage d'unigramme régulier (tel que défini par le fichier de vocabulaire) et distorsion = 0,0 donne une distribution uniforme.
  • num_reserved_ids : en option, certains identifiants réservés peuvent être ajoutés dans la plage [0, ..., num_reserved_ids) par les utilisateurs. Un cas d'utilisation est qu'un jeton de mot inconnu spécial est utilisé comme ID 0. Ces ID auront une probabilité d'échantillonnage de 0.
  • num_shards : un échantillonneur peut être utilisé pour échantillonner un sous-ensemble de la plage d'origine afin d'accélérer l'ensemble du calcul grâce au parallélisme. Ce paramètre (avec 'shard') indique le nombre de partitions utilisées dans le calcul global.
  • fragment : un échantillonneur peut être utilisé pour échantillonner un sous-ensemble de la plage d'origine afin d'accélérer l'ensemble du calcul grâce au parallélisme. Ce paramètre (avec 'num_shards') indique le numéro de partition particulier d'une opération d'échantillonnage, lorsque le partitionnement est utilisé.
  • unigrammes : une liste de décomptes ou de probabilités d'unigrammes, un par ID dans un ordre séquentiel. Exactement l'un des vocabulaire_file et unigrammes doit être transmis à cette opération.
  • seed : Si seed ou seed2 sont définis comme étant différents de zéro, le générateur de nombres aléatoires est amorcé par la graine donnée. Sinon, il est ensemencé par une graine aléatoire.
  • seed2 : Une deuxième graine pour éviter la collision des graines.

Retour:

  • Output sampled_candidates : un vecteur de longueur num_sampled, dans lequel chaque élément est l'ID d'un candidat échantillonné.
  • Output true_expected_count : une matrice batch_size * num_true, représentant le nombre de fois où chaque candidat devrait apparaître dans un lot de candidats échantillonnés. Si unique=true, alors c'est une probabilité.
  • Output sampled_expected_count : un vecteur de longueur num_sampled, pour chaque candidat échantillonné représentant le nombre de fois que le candidat devrait apparaître dans un lot de candidats échantillonnés. Si unique=true, alors c'est 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

Setters d'attributs facultatifs pour FixedUnigramCandidateSampler .

Attributs publics

opération

Operation operation

candidats_échantillonnés

::tensorflow::Output sampled_candidates

sampled_expected_count

::tensorflow::Output sampled_expected_count

true_expected_count

::tensorflow::Output true_expected_count

Fonctions publiques

FixeUnigramCandidateSampler

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

FixeUnigramCandidateSampler

 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
)

NumReservedIds

Attrs NumReservedIds(
  int64 x
)

Nombre de fragments

Attrs NumShards(
  int64 x
)

Graine

Attrs Seed(
  int64 x
)

Semence2

Attrs Seed2(
  int64 x
)

Tesson

Attrs Shard(
  int64 x
)

Unigrammes

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

Fichier Vocabulaire

Attrs VocabFile(
  StringPiece x
)