torcheval.metrics.functional.multilabel_accuracy¶
-
torcheval.metrics.functional.
multilabel_accuracy
(input: Tensor, target: Tensor, *, threshold: float = 0.5, criteria: str = 'exact_match') Tensor [source]¶ Compute multilabel accuracy score, which is the frequency of input matching target. Its class version is
torcheval.metrics.MultilabelAccuracy
. See alsobinary_accuracy
,multiclass_accuracy
,topk_multilabel_accuracy
Parameters: - input (Tensor) – Tensor of label predictions with shape of (n_sample, n_class).
torch.where(input < threshold, 0, 1)` will be applied to the
input
. - target (Tensor) – Tensor of ground truth labels with shape of (n_sample, n_class).
- threshold – Threshold for converting input into predicted labels for each sample.
- criteria –
- [default] (- 'exact_match') – The set of labels predicted for a sample must exactly match the corresponding set of labels in target. Also known as subset accuracy.
- 'hamming' (-) – Fraction of correct labels over total number of labels.
- 'overlap' (-) – The set of labels predicted for a sample must overlap with the corresponding set of labels in target.
- 'contain' (-) – The set of labels predicted for a sample must contain the corresponding set of labels in target.
- 'belong' (-) – The set of labels predicted for a sample must (fully) belong to the corresponding set of labels in target.
Examples:
>>> import torch >>> from torcheval.metrics.functional import multilabel_accuracy >>> input = torch.tensor([[0, 1], [1, 1], [0, 0], [0, 1]]) >>> target = torch.tensor([[0, 1], [1, 0], [0, 0], [1, 1]]) >>> multilabel_accuracy(input, target) tensor(0.5) # 2 / 4 >>> input = torch.tensor([[0, 1], [1, 1], [0, 0], [0, 1]]) >>> target = torch.tensor([[0, 1], [1, 0], [0, 0], [1, 1]]) >>> multilabel_accuracy(input, target, criteria="hamming") tensor(0.75) # 6 / 8 >>> input = torch.tensor([[0, 1], [1, 1], [0, 0], [0, 1]]) >>> target = torch.tensor([[0, 1], [1, 0], [0, 0], [1, 1]]) >>> multilabel_accuracy(input, target, criteria="overlap") tensor(1) # 4 / 4 >>> input = torch.tensor([[0, 1], [1, 1], [0, 0], [0, 1]]) >>> target = torch.tensor([[0, 1], [1, 0], [0, 0], [1, 1]]) >>> multilabel_accuracy(input, target, criteria="contain") tensor(0.75) # 3 / 4, input[0],input[1],input[2] >>> input = torch.tensor([[0, 1], [1, 1], [0, 0], [0, 1]]) >>> target = torch.tensor([[0, 1], [1, 0], [0, 0], [1, 1]]) >>> multilabel_accuracy(input, target, criteria="belong") tensor(0.75) # 3 / 4, input[0],input[1],input[3]
- input (Tensor) – Tensor of label predictions with shape of (n_sample, n_class).
torch.where(input < threshold, 0, 1)` will be applied to the