LearnedUnigramCandidateSampler

public final class LearnedUnigramCandidateSampler

Generates labels for candidate sampling with a learned unigram distribution.

See explanations of candidate sampling and the data formats at go/candidate-sampling.

For each batch, this op picks a single set of sampled candidate labels.

The advantages of sampling candidates per-batch are simplicity and the possibility of efficient dense matrix multiplication. The disadvantage is that the sampled candidates must be chosen independently of the context and of the true labels.

Nested Classes

class LearnedUnigramCandidateSampler.Options Optional attributes for LearnedUnigramCandidateSampler  

Constants

String OP_NAME The name of this op, as known by TensorFlow core engine

Public Methods

static LearnedUnigramCandidateSampler
create(Scope scope, Operand<TInt64> trueClasses, Long numTrue, Long numSampled, Boolean unique, Long rangeMax, Options... options)
Factory method to create a class wrapping a new LearnedUnigramCandidateSampler operation.
Output<TInt64>
sampledCandidates()
A vector of length num_sampled, in which each element is the ID of a sampled candidate.
Output<TFloat32>
sampledExpectedCount()
A vector of length num_sampled, for each sampled candidate representing the number of times the candidate is expected to occur in a batch of sampled candidates.
static LearnedUnigramCandidateSampler.Options
seed(Long seed)
static LearnedUnigramCandidateSampler.Options
seed2(Long seed2)
Output<TFloat32>
trueExpectedCount()
A batch_size * num_true matrix, representing the number of times each candidate is expected to occur in a batch of sampled candidates.

Inherited Methods

Constants

public static final String OP_NAME

The name of this op, as known by TensorFlow core engine

Constant Value: "LearnedUnigramCandidateSampler"

Public Methods

public static LearnedUnigramCandidateSampler create (Scope scope, Operand<TInt64> trueClasses, Long numTrue, Long numSampled, Boolean unique, Long rangeMax, Options... options)

Factory method to create a class wrapping a new LearnedUnigramCandidateSampler operation.

Parameters
scope current scope
trueClasses A batch_size * num_true matrix, in which each row contains the IDs of the num_true target_classes in the corresponding original label.
numTrue Number of true labels per context.
numSampled Number of candidates to randomly sample.
unique If unique is true, we sample with rejection, so that all sampled candidates in a batch are unique. This requires some approximation to estimate the post-rejection sampling probabilities.
rangeMax The sampler will sample integers from the interval [0, range_max).
options carries optional attributes values
Returns
  • a new instance of LearnedUnigramCandidateSampler

public Output<TInt64> sampledCandidates ()

A vector of length num_sampled, in which each element is the ID of a sampled candidate.

public Output<TFloat32> sampledExpectedCount ()

A vector of length num_sampled, for each sampled candidate representing the number of times the candidate is expected to occur in a batch of sampled candidates. If unique=true, then this is a probability.

public static LearnedUnigramCandidateSampler.Options seed (Long seed)

Parameters
seed If either seed or seed2 are set to be non-zero, the random number generator is seeded by the given seed. Otherwise, it is seeded by a random seed.

public static LearnedUnigramCandidateSampler.Options seed2 (Long seed2)

Parameters
seed2 An second seed to avoid seed collision.

public Output<TFloat32> trueExpectedCount ()

A batch_size * num_true matrix, representing the number of times each candidate is expected to occur in a batch of sampled candidates. If unique=true, then this is a probability.