Tensorflow :: ops :: FixedUnigramCandidateSampler
#include <candidate_sampling_ops.h>
Generiert Labels für Kandidatenstichproben mit einer erlernten Unigrammverteilung.
Zusammenfassung
Ein Unigramm-Sampler könnte eine feste Unigramm-Verteilung verwenden, die aus einer Datei gelesen oder als In-Memory-Array übergeben wird, anstatt die Verteilung aus Daten im laufenden Betrieb aufzubauen. Es besteht auch die Möglichkeit, die Verteilung durch Anwenden einer Verzerrungskraft auf die Gewichte zu verzerren.
Die Vokabeldatei sollte im CSV-ähnlichen Format vorliegen, wobei das letzte Feld die dem Wort zugeordnete Gewichtung ist.
Für jede Charge wählt diese Operation einen einzelnen Satz von Stichprobenkandidatenetiketten aus.
Die Vorteile der Probenahme von Kandidaten pro Charge liegen in der Einfachheit und der Möglichkeit einer effizienten Multiplikation dichter Matrix. Der Nachteil ist, dass die in die Stichprobe einbezogenen Kandidaten unabhängig vom Kontext und von den tatsächlichen Bezeichnungen ausgewählt werden müssen.
Argumente:
- scope: Ein Scope- Objekt
- true_classes: Eine Batch_size * num_true-Matrix, in der jede Zeile die IDs der num_true-Zielklassen in der entsprechenden Originalbezeichnung enthält.
- num_true: Anzahl der echten Labels pro Kontext.
- num_sampled: Anzahl der Kandidaten, die zufällig ausgewählt werden sollen.
- einzigartig: Wenn einzigartig wahr ist, werden wir mit Ablehnung abgetastet, sodass alle Stichprobenkandidaten in einem Stapel eindeutig sind. Dies erfordert eine gewisse Annäherung, um die Abtastwahrscheinlichkeiten nach der Zurückweisung abzuschätzen.
- range_max: Der Sampler tastet ganze Zahlen aus dem Intervall [0, range_max] ab.
Optionale Attribute (siehe Attrs
):
- vocab_file: Jede gültige Zeile in dieser Datei (die ein CSV-ähnliches Format haben sollte) entspricht einer gültigen Wort-ID. IDs sind in sequenzieller Reihenfolge, beginnend mit num_reserved_ids. Es wird erwartet, dass der letzte Eintrag in jeder Zeile ein Wert ist, der der Anzahl oder relativen Wahrscheinlichkeit entspricht. Genau eines von vocab_file und Unigrammen muss an diese Operation übergeben werden.
- Verzerrung: Die Verzerrung wird verwendet, um die Unigrammwahrscheinlichkeitsverteilung zu verzerren. Jedes Gewicht wird zuerst auf die Stärke der Verzerrung angehoben, bevor es zur internen Unigrammverteilung hinzugefügt wird. Infolgedessen ergibt Verzerrung = 1,0 eine regelmäßige Unigrammabtastung (wie in der Vokabeldatei definiert), und Verzerrung = 0,0 ergibt eine gleichmäßige Verteilung.
- num_reserved_ids: Optional können einige reservierte IDs von den Benutzern im Bereich [0, ..., num_reserved_ids] hinzugefügt werden. Ein Anwendungsfall besteht darin, dass ein spezielles unbekanntes Wort-Token als ID 0 verwendet wird. Diese IDs haben eine Abtastwahrscheinlichkeit von 0.
- num_shards: Ein Sampler kann verwendet werden, um aus einer Teilmenge des ursprünglichen Bereichs abzutasten, um die gesamte Berechnung durch Parallelität zu beschleunigen. Dieser Parameter (zusammen mit 'shard') gibt die Anzahl der Partitionen an, die für die Gesamtberechnung verwendet werden.
- shard: Ein Sampler kann verwendet werden, um aus einer Teilmenge des ursprünglichen Bereichs abzutasten, um die gesamte Berechnung durch Parallelität zu beschleunigen. Dieser Parameter (zusammen mit 'num_shards') gibt die bestimmte Partitionsnummer eines Sampler-Betriebs an, wenn die Partitionierung verwendet wird.
- Unigramme: Eine Liste von Unigrammzählungen oder -wahrscheinlichkeiten, eine pro ID in sequentieller Reihenfolge. Genau eines von vocab_file und Unigrammen sollte an diese Operation übergeben werden.
- seed: Wenn entweder seed oder seed2 auf ungleich Null gesetzt ist, wird der Zufallszahlengenerator durch den angegebenen Startwert gesetzt. Andernfalls wird es durch einen zufälligen Startwert ausgesät.
- seed2: Ein zweiter Samen, um eine Samenkollision zu vermeiden.
Kehrt zurück:
-
Output
sampled_candidates: Ein Vektor der Länge num_sampled, in dem jedes Element die ID eines abgetasteten Kandidaten ist. -
Output
true_expected_count: Eine Batch_size * num_true-Matrix, die angibt, wie oft jeder Kandidat in einem Stapel von Stichprobenkandidaten erwartet wird. Wenn unique = true, ist dies eine Wahrscheinlichkeit. -
Output
sampled_expected_count: Ein Vektor der Länge num_sampled für jeden abgetasteten Kandidaten, der angibt, wie oft der Kandidat in einem Stapel von abgetasteten Kandidaten erwartet wird. Wenn unique = true, ist dies eine Wahrscheinlichkeit.
Konstruktoren und Destruktoren | |
---|---|
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) |
Öffentliche Attribute | |
---|---|
operation | |
sampled_candidates | |
sampled_expected_count | |
true_expected_count |
Öffentliche statische Funktionen | |
---|---|
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) |
Strukturen | |
---|---|
tensorflow :: ops :: FixedUnigramCandidateSampler :: Attrs | Optionale Attributsetzer für FixedUnigramCandidateSampler . |
Öffentliche Attribute
Operation
Operation operation
sampled_candidates
::tensorflow::Output sampled_candidates
sampled_expected_count
::tensorflow::Output sampled_expected_count
true_expected_count
::tensorflow::Output true_expected_count
Öffentliche Funktionen
FixedUnigramCandidateSampler
FixedUnigramCandidateSampler( const ::tensorflow::Scope & scope, ::tensorflow::Input true_classes, int64 num_true, int64 num_sampled, bool unique, int64 range_max )
FixedUnigramCandidateSampler
FixedUnigramCandidateSampler( const ::tensorflow::Scope & scope, ::tensorflow::Input true_classes, int64 num_true, int64 num_sampled, bool unique, int64 range_max, const FixedUnigramCandidateSampler::Attrs & attrs )
Öffentliche statische Funktionen
Verzerrung
Attrs Distortion( float x )
NumReservedIds
Attrs NumReservedIds( int64 x )
NumShards
Attrs NumShards( int64 x )
Samen
Attrs Seed( int64 x )
Seed2
Attrs Seed2( int64 x )
Scherbe
Attrs Shard( int64 x )
Unigramme
Attrs Unigrams( const gtl::ArraySlice< float > & x )
VocabFile
Attrs VocabFile( StringPiece x )