torcheval.metrics.functional.multilabel_accuracy¶
- torcheval.metrics.functional.multilabel_accuracy(input: Tensor, target: Tensor, *, threshold: float = 0.5, criteria: str = 'exact_match') Tensor ¶
计算多标签准确率得分,即输入匹配目标的频率。其类版本为
torcheval.metrics.MultilabelAccuracy
。- 参数:
**input** (Tensor) – 形状为 (n_sample, n_class) 的标签预测张量。 torch.where(input < threshold, 0, 1)` 将应用于
input
。**target** (Tensor) – 形状为 (n_sample, n_class) 的真实标签张量。
**threshold** – 用于将输入转换为每个样本的预测标签的阈值。
**criteria** –
**[**默认] (- 'exact_match') – 为样本预测的标签集必须与目标中相应的标签集完全匹配。也称为子集准确率。
**'hamming'** (-) – 正确标签在总标签数中的比例。
**'overlap'** (-) – 为样本预测的标签集必须与目标中相应的标签集重叠。
**'contain'** (-) – 为样本预测的标签集必须包含目标中相应的标签集。
**'belong'** (-) – 为样本预测的标签集必须(完全)属于目标中相应的标签集。
示例
>>> 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]