tf.nn.compute_accidental_hits(
true_classes,
sampled_candidates,
num_true,
seed=None,
name=None
)
Defined in tensorflow/python/ops/candidate_sampling_ops.py.
Compute the position ids in sampled_candidates matching true_classes.
In Candidate Sampling, this operation facilitates virtually removing sampled classes which happen to match target classes. This is done in Sampled Softmax and Sampled Logistic.
See our Candidate Sampling Algorithms Reference.
We presuppose that the sampled_candidates are unique.
We call it an 'accidental hit' when one of the target classes
matches one of the sampled classes. This operation reports
accidental hits as triples (index, id, weight), where index
represents the row number in true_classes, id represents the
position in sampled_candidates, and weight is -FLOAT_MAX.
The result of this op should be passed through a sparse_to_dense
operation, then added to the logits of the sampled classes. This
removes the contradictory effect of accidentally sampling the true
target classes as noise classes for the same example.
Args:
true_classes: ATensorof typeint64and shape[batch_size, num_true]. The target classes.sampled_candidates: A tensor of typeint64and shape[num_sampled]. The sampled_candidates output of CandidateSampler.num_true: Anint. The number of target classes per training example.seed: Anint. An operation-specific seed. Default is 0.name: A name for the operation (optional).
Returns:
indices: ATensorof typeint32and shape[num_accidental_hits]. Values indicate rows intrue_classes.ids: ATensorof typeint64and shape[num_accidental_hits]. Values indicate positions insampled_candidates.weights: ATensorof typefloatand shape[num_accidental_hits]. Each value is-FLOAT_MAX.