Keras serializable class for Precision.
tfr.keras.losses.PrecisionLambdaWeight(
topn: Optional[int] = None,
positive_fn: Optional[tfr.keras.utils.GainFunction
] = None,
**kwargs
)
Args |
topn
|
(int) The K in Precision@K metric.
|
positive_fn
|
(function): A function on Tensor that output boolean True
for positive examples. The rest are negative examples.
|
Methods
get_config
View source
get_config() -> Dict[str, Any]
individual_weights
View source
individual_weights(
labels, ranks
)
Returns the weight Tensor
for individual examples.
Args |
labels
|
A dense Tensor of labels with shape [batch_size, list_size].
|
ranks
|
A dense Tensor of ranks with the same shape as labels that are
sorted by logits.
|
Returns |
A Tensor that can weight individual examples.
|
pair_weights
View source
pair_weights(
labels, ranks
)
See _LambdaWeight
.
The current implementation here is that for any pairs of documents i and j,
we set the weight to be 1 if
- i and j have different labels.
- i <= topn and j > topn or i > topn and j <= topn.
This is exactly the same as the original LambdaRank method. The weight is
the gain of swapping a pair of documents.
Args |
labels
|
A dense Tensor of labels with shape [batch_size, list_size].
|
ranks
|
A dense Tensor of ranks with the same shape as labels that are
sorted by logits.
|
Returns |
A Tensor that can weight example pairs.
|