diff --git a/docs/source/pages/overview.rst b/docs/source/pages/overview.rst index 933d4254cfe..9fa08fbbc99 100644 --- a/docs/source/pages/overview.rst +++ b/docs/source/pages/overview.rst @@ -453,7 +453,7 @@ of metrics e.g. computation of confidence intervals by resampling of input data. .. testoutput:: :options: +NORMALIZE_WHITESPACE - {'mean': tensor(0.1333), 'std': tensor(0.1554)} + {'mean': tensor(0.1069), 'std': tensor(0.1180)} You can see all implemented wrappers under the wrapper section of the API docs. diff --git a/src/torchmetrics/classification/accuracy.py b/src/torchmetrics/classification/accuracy.py index fd12d33f940..74159b3ff20 100644 --- a/src/torchmetrics/classification/accuracy.py +++ b/src/torchmetrics/classification/accuracy.py @@ -214,7 +214,7 @@ class MulticlassAccuracy(MulticlassStatScores): >>> preds = tensor([2, 1, 0, 1]) >>> metric = MulticlassAccuracy(num_classes=3) >>> metric(preds, target) - tensor(0.8333) + tensor(0.7500) >>> mca = MulticlassAccuracy(num_classes=3, average=None) >>> mca(preds, target) tensor([0.5000, 1.0000, 1.0000]) @@ -228,7 +228,7 @@ class MulticlassAccuracy(MulticlassStatScores): ... [0.05, 0.82, 0.13]]) >>> metric = MulticlassAccuracy(num_classes=3) >>> metric(preds, target) - tensor(0.8333) + tensor(0.7500) >>> mca = MulticlassAccuracy(num_classes=3, average=None) >>> mca(preds, target) tensor([0.5000, 1.0000, 1.0000]) @@ -239,7 +239,7 @@ class MulticlassAccuracy(MulticlassStatScores): >>> preds = tensor([[[0, 2], [2, 0], [0, 1]], [[2, 2], [2, 1], [1, 0]]]) >>> metric = MulticlassAccuracy(num_classes=3, multidim_average='samplewise') >>> metric(preds, target) - tensor([0.5000, 0.2778]) + tensor([0.5000, 0.3333]) >>> mca = MulticlassAccuracy(num_classes=3, multidim_average='samplewise', average=None) >>> mca(preds, target) tensor([[1.0000, 0.0000, 0.5000], diff --git a/src/torchmetrics/classification/hamming.py b/src/torchmetrics/classification/hamming.py index 20a1d9d2c71..beabb6a7965 100644 --- a/src/torchmetrics/classification/hamming.py +++ b/src/torchmetrics/classification/hamming.py @@ -224,7 +224,7 @@ class MulticlassHammingDistance(MulticlassStatScores): >>> preds = tensor([2, 1, 0, 1]) >>> metric = MulticlassHammingDistance(num_classes=3) >>> metric(preds, target) - tensor(0.1667) + tensor(0.2500) >>> mchd = MulticlassHammingDistance(num_classes=3, average=None) >>> mchd(preds, target) tensor([0.5000, 0.0000, 0.0000]) @@ -238,7 +238,7 @@ class MulticlassHammingDistance(MulticlassStatScores): ... [0.05, 0.82, 0.13]]) >>> metric = MulticlassHammingDistance(num_classes=3) >>> metric(preds, target) - tensor(0.1667) + tensor(0.2500) >>> mchd = MulticlassHammingDistance(num_classes=3, average=None) >>> mchd(preds, target) tensor([0.5000, 0.0000, 0.0000]) @@ -249,7 +249,7 @@ class MulticlassHammingDistance(MulticlassStatScores): >>> preds = tensor([[[0, 2], [2, 0], [0, 1]], [[2, 2], [2, 1], [1, 0]]]) >>> metric = MulticlassHammingDistance(num_classes=3, multidim_average='samplewise') >>> metric(preds, target) - tensor([0.5000, 0.7222]) + tensor([0.5000, 0.6667]) >>> mchd = MulticlassHammingDistance(num_classes=3, multidim_average='samplewise', average=None) >>> mchd(preds, target) tensor([[0.0000, 1.0000, 0.5000], diff --git a/src/torchmetrics/classification/negative_predictive_value.py b/src/torchmetrics/classification/negative_predictive_value.py index 6d4471bd257..8f9b66130d8 100644 --- a/src/torchmetrics/classification/negative_predictive_value.py +++ b/src/torchmetrics/classification/negative_predictive_value.py @@ -220,7 +220,7 @@ class MulticlassNegativePredictiveValue(MulticlassStatScores): >>> preds = tensor([2, 1, 0, 1]) >>> metric = MulticlassNegativePredictiveValue(num_classes=3) >>> metric(preds, target) - tensor(0.8889) + tensor(0.8750) >>> metric = MulticlassNegativePredictiveValue(num_classes=3, average=None) >>> metric(preds, target) tensor([0.6667, 1.0000, 1.0000]) @@ -234,7 +234,7 @@ class MulticlassNegativePredictiveValue(MulticlassStatScores): ... [0.05, 0.82, 0.13]]) >>> metric = MulticlassNegativePredictiveValue(num_classes=3) >>> metric(preds, target) - tensor(0.8889) + tensor(0.8750) >>> metric = MulticlassNegativePredictiveValue(num_classes=3, average=None) >>> metric(preds, target) tensor([0.6667, 1.0000, 1.0000]) @@ -245,7 +245,7 @@ class MulticlassNegativePredictiveValue(MulticlassStatScores): >>> preds = tensor([[[0, 2], [2, 0], [0, 1]], [[2, 2], [2, 1], [1, 0]]]) >>> metric = MulticlassNegativePredictiveValue(num_classes=3, multidim_average='samplewise') >>> metric(preds, target) - tensor([0.7833, 0.6556]) + tensor([0.7500, 0.6667]) >>> metric = MulticlassNegativePredictiveValue(num_classes=3, multidim_average='samplewise', average=None) >>> metric(preds, target) tensor([[1.0000, 0.6000, 0.7500], @@ -371,7 +371,7 @@ class MultilabelNegativePredictiveValue(MultilabelStatScores): >>> preds = tensor([[0, 0, 1], [1, 0, 1]]) >>> metric = MultilabelNegativePredictiveValue(num_labels=3) >>> metric(preds, target) - tensor(0.5000) + tensor(0.6667) >>> mls = MultilabelNegativePredictiveValue(num_labels=3, average=None) >>> mls(preds, target) tensor([1.0000, 0.5000, 0.0000]) @@ -382,7 +382,7 @@ class MultilabelNegativePredictiveValue(MultilabelStatScores): >>> preds = tensor([[0.11, 0.22, 0.84], [0.73, 0.33, 0.92]]) >>> metric = MultilabelNegativePredictiveValue(num_labels=3) >>> metric(preds, target) - tensor(0.5000) + tensor(0.6667) >>> mls = MultilabelNegativePredictiveValue(num_labels=3, average=None) >>> mls(preds, target) tensor([1.0000, 0.5000, 0.0000]) @@ -394,7 +394,7 @@ class MultilabelNegativePredictiveValue(MultilabelStatScores): ... [[0.38, 0.04], [0.86, 0.780], [0.45, 0.37]]]) >>> metric = MultilabelNegativePredictiveValue(num_labels=3, multidim_average='samplewise') >>> metric(preds, target) - tensor([0.0000, 0.1667]) + tensor([0.0000, 0.2500]) >>> mls = MultilabelNegativePredictiveValue(num_labels=3, multidim_average='samplewise', average=None) >>> mls(preds, target) tensor([[0.0000, 0.0000, 0.0000], diff --git a/src/torchmetrics/classification/precision_recall.py b/src/torchmetrics/classification/precision_recall.py index aeb98fcf463..81d0a35b0b6 100644 --- a/src/torchmetrics/classification/precision_recall.py +++ b/src/torchmetrics/classification/precision_recall.py @@ -237,7 +237,7 @@ class MulticlassPrecision(MulticlassStatScores): >>> preds = tensor([2, 1, 0, 1]) >>> metric = MulticlassPrecision(num_classes=3) >>> metric(preds, target) - tensor(0.8333) + tensor(0.7500) >>> mcp = MulticlassPrecision(num_classes=3, average=None) >>> mcp(preds, target) tensor([1.0000, 0.5000, 1.0000]) @@ -251,7 +251,7 @@ class MulticlassPrecision(MulticlassStatScores): ... [0.05, 0.82, 0.13]]) >>> metric = MulticlassPrecision(num_classes=3) >>> metric(preds, target) - tensor(0.8333) + tensor(0.7500) >>> mcp = MulticlassPrecision(num_classes=3, average=None) >>> mcp(preds, target) tensor([1.0000, 0.5000, 1.0000]) @@ -262,7 +262,7 @@ class MulticlassPrecision(MulticlassStatScores): >>> preds = tensor([[[0, 2], [2, 0], [0, 1]], [[2, 2], [2, 1], [1, 0]]]) >>> metric = MulticlassPrecision(num_classes=3, multidim_average='samplewise') >>> metric(preds, target) - tensor([0.3889, 0.2778]) + tensor([0.5000, 0.3333]) >>> mcp = MulticlassPrecision(num_classes=3, multidim_average='samplewise', average=None) >>> mcp(preds, target) tensor([[0.6667, 0.0000, 0.5000], @@ -402,7 +402,7 @@ class MultilabelPrecision(MultilabelStatScores): >>> preds = tensor([[0, 0, 1], [1, 0, 1]]) >>> metric = MultilabelPrecision(num_labels=3) >>> metric(preds, target) - tensor(0.5000) + tensor(0.6667) >>> mlp = MultilabelPrecision(num_labels=3, average=None) >>> mlp(preds, target) tensor([1.0000, 0.0000, 0.5000]) @@ -413,7 +413,7 @@ class MultilabelPrecision(MultilabelStatScores): >>> preds = tensor([[0.11, 0.22, 0.84], [0.73, 0.33, 0.92]]) >>> metric = MultilabelPrecision(num_labels=3) >>> metric(preds, target) - tensor(0.5000) + tensor(0.6667) >>> mlp = MultilabelPrecision(num_labels=3, average=None) >>> mlp(preds, target) tensor([1.0000, 0.0000, 0.5000]) @@ -425,7 +425,7 @@ class MultilabelPrecision(MultilabelStatScores): ... [[0.38, 0.04], [0.86, 0.780], [0.45, 0.37]]]) >>> metric = MultilabelPrecision(num_labels=3, multidim_average='samplewise') >>> metric(preds, target) - tensor([0.3333, 0.0000]) + tensor([0.4000, 0.0000]) >>> mlp = MultilabelPrecision(num_labels=3, multidim_average='samplewise', average=None) >>> mlp(preds, target) tensor([[0.5000, 0.5000, 0.0000], @@ -696,7 +696,7 @@ class MulticlassRecall(MulticlassStatScores): >>> preds = tensor([2, 1, 0, 1]) >>> metric = MulticlassRecall(num_classes=3) >>> metric(preds, target) - tensor(0.8333) + tensor(0.7500) >>> mcr = MulticlassRecall(num_classes=3, average=None) >>> mcr(preds, target) tensor([0.5000, 1.0000, 1.0000]) @@ -710,7 +710,7 @@ class MulticlassRecall(MulticlassStatScores): ... [0.05, 0.82, 0.13]]) >>> metric = MulticlassRecall(num_classes=3) >>> metric(preds, target) - tensor(0.8333) + tensor(0.7500) >>> mcr = MulticlassRecall(num_classes=3, average=None) >>> mcr(preds, target) tensor([0.5000, 1.0000, 1.0000]) @@ -721,7 +721,7 @@ class MulticlassRecall(MulticlassStatScores): >>> preds = tensor([[[0, 2], [2, 0], [0, 1]], [[2, 2], [2, 1], [1, 0]]]) >>> metric = MulticlassRecall(num_classes=3, multidim_average='samplewise') >>> metric(preds, target) - tensor([0.5000, 0.2778]) + tensor([0.5000, 0.3333]) >>> mcr = MulticlassRecall(num_classes=3, multidim_average='samplewise', average=None) >>> mcr(preds, target) tensor([[1.0000, 0.0000, 0.5000], diff --git a/src/torchmetrics/classification/specificity.py b/src/torchmetrics/classification/specificity.py index 742ca10134d..b4106c82690 100644 --- a/src/torchmetrics/classification/specificity.py +++ b/src/torchmetrics/classification/specificity.py @@ -214,7 +214,7 @@ class MulticlassSpecificity(MulticlassStatScores): >>> preds = tensor([2, 1, 0, 1]) >>> metric = MulticlassSpecificity(num_classes=3) >>> metric(preds, target) - tensor(0.8889) + tensor(0.8750) >>> mcs = MulticlassSpecificity(num_classes=3, average=None) >>> mcs(preds, target) tensor([1.0000, 0.6667, 1.0000]) @@ -228,7 +228,7 @@ class MulticlassSpecificity(MulticlassStatScores): ... [0.05, 0.82, 0.13]]) >>> metric = MulticlassSpecificity(num_classes=3) >>> metric(preds, target) - tensor(0.8889) + tensor(0.8750) >>> mcs = MulticlassSpecificity(num_classes=3, average=None) >>> mcs(preds, target) tensor([1.0000, 0.6667, 1.0000]) @@ -239,7 +239,7 @@ class MulticlassSpecificity(MulticlassStatScores): >>> preds = tensor([[[0, 2], [2, 0], [0, 1]], [[2, 2], [2, 1], [1, 0]]]) >>> metric = MulticlassSpecificity(num_classes=3, multidim_average='samplewise') >>> metric(preds, target) - tensor([0.7500, 0.6556]) + tensor([0.7500, 0.6667]) >>> mcs = MulticlassSpecificity(num_classes=3, multidim_average='samplewise', average=None) >>> mcs(preds, target) tensor([[0.7500, 0.7500, 0.7500], diff --git a/src/torchmetrics/classification/stat_scores.py b/src/torchmetrics/classification/stat_scores.py index d54ae5edf89..f3135e1a6cf 100644 --- a/src/torchmetrics/classification/stat_scores.py +++ b/src/torchmetrics/classification/stat_scores.py @@ -309,7 +309,7 @@ def __init__( self, num_classes: Optional[int] = None, top_k: int = 1, - average: Optional[Literal["micro", "macro", "weighted", "none"]] = "macro", + average: Optional[Literal["micro", "macro", "weighted", "none"]] = "micro", multidim_average: Literal["global", "samplewise"] = "global", ignore_index: Optional[int] = None, validate_args: bool = True, @@ -462,7 +462,7 @@ def __init__( self, num_labels: int, threshold: float = 0.5, - average: Optional[Literal["micro", "macro", "weighted", "none"]] = "macro", + average: Optional[Literal["micro", "macro", "weighted", "none"]] = "micro", multidim_average: Literal["global", "samplewise"] = "global", ignore_index: Optional[int] = None, validate_args: bool = True, diff --git a/src/torchmetrics/functional/classification/accuracy.py b/src/torchmetrics/functional/classification/accuracy.py index 905dcc2c251..6147346ed53 100644 --- a/src/torchmetrics/functional/classification/accuracy.py +++ b/src/torchmetrics/functional/classification/accuracy.py @@ -167,7 +167,7 @@ def multiclass_accuracy( preds: Tensor, target: Tensor, num_classes: Optional[int] = None, - average: Optional[Literal["micro", "macro", "weighted", "none"]] = "macro", + average: Optional[Literal["micro", "macro", "weighted", "none"]] = "micro", top_k: int = 1, multidim_average: Literal["global", "samplewise"] = "global", ignore_index: Optional[int] = None, @@ -234,7 +234,7 @@ def multiclass_accuracy( >>> target = tensor([2, 1, 0, 0]) >>> preds = tensor([2, 1, 0, 1]) >>> multiclass_accuracy(preds, target, num_classes=3) - tensor(0.8333) + tensor(0.7500) >>> multiclass_accuracy(preds, target, num_classes=3, average=None) tensor([0.5000, 1.0000, 1.0000]) @@ -246,7 +246,7 @@ def multiclass_accuracy( ... [0.71, 0.09, 0.20], ... [0.05, 0.82, 0.13]]) >>> multiclass_accuracy(preds, target, num_classes=3) - tensor(0.8333) + tensor(0.7500) >>> multiclass_accuracy(preds, target, num_classes=3, average=None) tensor([0.5000, 1.0000, 1.0000]) @@ -255,7 +255,7 @@ def multiclass_accuracy( >>> target = tensor([[[0, 1], [2, 1], [0, 2]], [[1, 1], [2, 0], [1, 2]]]) >>> preds = tensor([[[0, 2], [2, 0], [0, 1]], [[2, 2], [2, 1], [1, 0]]]) >>> multiclass_accuracy(preds, target, num_classes=3, multidim_average='samplewise') - tensor([0.5000, 0.2778]) + tensor([0.5000, 0.3333]) >>> multiclass_accuracy(preds, target, num_classes=3, multidim_average='samplewise', average=None) tensor([[1.0000, 0.0000, 0.5000], [0.0000, 0.3333, 0.5000]]) @@ -276,7 +276,7 @@ def multilabel_accuracy( target: Tensor, num_labels: int, threshold: float = 0.5, - average: Optional[Literal["micro", "macro", "weighted", "none"]] = "macro", + average: Optional[Literal["micro", "macro", "weighted", "none"]] = "micro", multidim_average: Literal["global", "samplewise"] = "global", ignore_index: Optional[int] = None, validate_args: bool = True, diff --git a/src/torchmetrics/functional/classification/hamming.py b/src/torchmetrics/functional/classification/hamming.py index 9d6c7ea3798..66599812370 100644 --- a/src/torchmetrics/functional/classification/hamming.py +++ b/src/torchmetrics/functional/classification/hamming.py @@ -163,7 +163,7 @@ def multiclass_hamming_distance( preds: Tensor, target: Tensor, num_classes: int, - average: Optional[Literal["micro", "macro", "weighted", "none"]] = "macro", + average: Optional[Literal["micro", "macro", "weighted", "none"]] = "micro", top_k: int = 1, multidim_average: Literal["global", "samplewise"] = "global", ignore_index: Optional[int] = None, @@ -231,7 +231,7 @@ def multiclass_hamming_distance( >>> target = tensor([2, 1, 0, 0]) >>> preds = tensor([2, 1, 0, 1]) >>> multiclass_hamming_distance(preds, target, num_classes=3) - tensor(0.1667) + tensor(0.2500) >>> multiclass_hamming_distance(preds, target, num_classes=3, average=None) tensor([0.5000, 0.0000, 0.0000]) @@ -243,7 +243,7 @@ def multiclass_hamming_distance( ... [0.71, 0.09, 0.20], ... [0.05, 0.82, 0.13]]) >>> multiclass_hamming_distance(preds, target, num_classes=3) - tensor(0.1667) + tensor(0.2500) >>> multiclass_hamming_distance(preds, target, num_classes=3, average=None) tensor([0.5000, 0.0000, 0.0000]) @@ -252,7 +252,7 @@ def multiclass_hamming_distance( >>> target = tensor([[[0, 1], [2, 1], [0, 2]], [[1, 1], [2, 0], [1, 2]]]) >>> preds = tensor([[[0, 2], [2, 0], [0, 1]], [[2, 2], [2, 1], [1, 0]]]) >>> multiclass_hamming_distance(preds, target, num_classes=3, multidim_average='samplewise') - tensor([0.5000, 0.7222]) + tensor([0.5000, 0.6667]) >>> multiclass_hamming_distance(preds, target, num_classes=3, multidim_average='samplewise', average=None) tensor([[0.0000, 1.0000, 0.5000], [1.0000, 0.6667, 0.5000]]) @@ -273,7 +273,7 @@ def multilabel_hamming_distance( target: Tensor, num_labels: int, threshold: float = 0.5, - average: Optional[Literal["micro", "macro", "weighted", "none"]] = "macro", + average: Optional[Literal["micro", "macro", "weighted", "none"]] = "micro", multidim_average: Literal["global", "samplewise"] = "global", ignore_index: Optional[int] = None, validate_args: bool = True, diff --git a/src/torchmetrics/functional/classification/negative_predictive_value.py b/src/torchmetrics/functional/classification/negative_predictive_value.py index 9e31216ae17..c4d04000e9d 100644 --- a/src/torchmetrics/functional/classification/negative_predictive_value.py +++ b/src/torchmetrics/functional/classification/negative_predictive_value.py @@ -139,7 +139,7 @@ def multiclass_negative_predictive_value( preds: Tensor, target: Tensor, num_classes: int, - average: Optional[Literal["micro", "macro", "weighted", "none"]] = "macro", + average: Optional[Literal["micro", "macro", "weighted", "none"]] = "micro", top_k: int = 1, multidim_average: Literal["global", "samplewise"] = "global", ignore_index: Optional[int] = None, @@ -208,7 +208,7 @@ def multiclass_negative_predictive_value( >>> target = tensor([2, 1, 0, 0]) >>> preds = tensor([2, 1, 0, 1]) >>> multiclass_negative_predictive_value(preds, target, num_classes=3) - tensor(0.8889) + tensor(0.8750) >>> multiclass_negative_predictive_value(preds, target, num_classes=3, average=None) tensor([0.6667, 1.0000, 1.0000]) @@ -220,7 +220,7 @@ def multiclass_negative_predictive_value( ... [0.71, 0.09, 0.20], ... [0.05, 0.82, 0.13]]) >>> multiclass_negative_predictive_value(preds, target, num_classes=3) - tensor(0.8889) + tensor(0.8750) >>> multiclass_negative_predictive_value(preds, target, num_classes=3, average=None) tensor([0.6667, 1.0000, 1.0000]) @@ -229,7 +229,7 @@ def multiclass_negative_predictive_value( >>> target = tensor([[[0, 1], [2, 1], [0, 2]], [[1, 1], [2, 0], [1, 2]]]) >>> preds = tensor([[[0, 2], [2, 0], [0, 1]], [[2, 2], [2, 1], [1, 0]]]) >>> multiclass_negative_predictive_value(preds, target, num_classes=3, multidim_average='samplewise') - tensor([0.7833, 0.6556]) + tensor([0.7500, 0.6667]) >>> multiclass_negative_predictive_value( ... preds, target, num_classes=3, multidim_average='samplewise', average=None ... ) @@ -254,7 +254,7 @@ def multilabel_negative_predictive_value( target: Tensor, num_labels: int, threshold: float = 0.5, - average: Optional[Literal["micro", "macro", "weighted", "none"]] = "macro", + average: Optional[Literal["micro", "macro", "weighted", "none"]] = "micro", multidim_average: Literal["global", "samplewise"] = "global", ignore_index: Optional[int] = None, validate_args: bool = True, @@ -320,7 +320,7 @@ def multilabel_negative_predictive_value( >>> target = tensor([[0, 1, 0], [1, 0, 1]]) >>> preds = tensor([[0, 0, 1], [1, 0, 1]]) >>> multilabel_negative_predictive_value(preds, target, num_labels=3) - tensor(0.5000) + tensor(0.6667) >>> multilabel_negative_predictive_value(preds, target, num_labels=3, average=None) tensor([1.0000, 0.5000, 0.0000]) @@ -329,7 +329,7 @@ def multilabel_negative_predictive_value( >>> target = tensor([[0, 1, 0], [1, 0, 1]]) >>> preds = tensor([[0.11, 0.22, 0.84], [0.73, 0.33, 0.92]]) >>> multilabel_negative_predictive_value(preds, target, num_labels=3) - tensor(0.5000) + tensor(0.6667) >>> multilabel_negative_predictive_value(preds, target, num_labels=3, average=None) tensor([1.0000, 0.5000, 0.0000]) @@ -339,7 +339,7 @@ def multilabel_negative_predictive_value( >>> preds = tensor([[[0.59, 0.91], [0.91, 0.99], [0.63, 0.04]], ... [[0.38, 0.04], [0.86, 0.780], [0.45, 0.37]]]) >>> multilabel_negative_predictive_value(preds, target, num_labels=3, multidim_average='samplewise') - tensor([0.0000, 0.1667]) + tensor([0.0000, 0.2500]) >>> multilabel_negative_predictive_value( ... preds, target, num_labels=3, multidim_average='samplewise', average=None ... ) diff --git a/src/torchmetrics/functional/classification/precision_recall.py b/src/torchmetrics/functional/classification/precision_recall.py index a762ee0fe2f..0b13679f5df 100644 --- a/src/torchmetrics/functional/classification/precision_recall.py +++ b/src/torchmetrics/functional/classification/precision_recall.py @@ -141,7 +141,7 @@ def multiclass_precision( preds: Tensor, target: Tensor, num_classes: int, - average: Optional[Literal["micro", "macro", "weighted", "none"]] = "macro", + average: Optional[Literal["micro", "macro", "weighted", "none"]] = "micro", top_k: int = 1, multidim_average: Literal["global", "samplewise"] = "global", ignore_index: Optional[int] = None, @@ -209,7 +209,7 @@ def multiclass_precision( >>> target = tensor([2, 1, 0, 0]) >>> preds = tensor([2, 1, 0, 1]) >>> multiclass_precision(preds, target, num_classes=3) - tensor(0.8333) + tensor(0.7500) >>> multiclass_precision(preds, target, num_classes=3, average=None) tensor([1.0000, 0.5000, 1.0000]) @@ -221,7 +221,7 @@ def multiclass_precision( ... [0.71, 0.09, 0.20], ... [0.05, 0.82, 0.13]]) >>> multiclass_precision(preds, target, num_classes=3) - tensor(0.8333) + tensor(0.7500) >>> multiclass_precision(preds, target, num_classes=3, average=None) tensor([1.0000, 0.5000, 1.0000]) @@ -230,7 +230,7 @@ def multiclass_precision( >>> target = tensor([[[0, 1], [2, 1], [0, 2]], [[1, 1], [2, 0], [1, 2]]]) >>> preds = tensor([[[0, 2], [2, 0], [0, 1]], [[2, 2], [2, 1], [1, 0]]]) >>> multiclass_precision(preds, target, num_classes=3, multidim_average='samplewise') - tensor([0.3889, 0.2778]) + tensor([0.5000, 0.3333]) >>> multiclass_precision(preds, target, num_classes=3, multidim_average='samplewise', average=None) tensor([[0.6667, 0.0000, 0.5000], [0.0000, 0.5000, 0.3333]]) @@ -261,7 +261,7 @@ def multilabel_precision( target: Tensor, num_labels: int, threshold: float = 0.5, - average: Optional[Literal["micro", "macro", "weighted", "none"]] = "macro", + average: Optional[Literal["micro", "macro", "weighted", "none"]] = "micro", multidim_average: Literal["global", "samplewise"] = "global", ignore_index: Optional[int] = None, validate_args: bool = True, @@ -326,7 +326,7 @@ def multilabel_precision( >>> target = tensor([[0, 1, 0], [1, 0, 1]]) >>> preds = tensor([[0, 0, 1], [1, 0, 1]]) >>> multilabel_precision(preds, target, num_labels=3) - tensor(0.5000) + tensor(0.6667) >>> multilabel_precision(preds, target, num_labels=3, average=None) tensor([1.0000, 0.0000, 0.5000]) @@ -335,7 +335,7 @@ def multilabel_precision( >>> target = tensor([[0, 1, 0], [1, 0, 1]]) >>> preds = tensor([[0.11, 0.22, 0.84], [0.73, 0.33, 0.92]]) >>> multilabel_precision(preds, target, num_labels=3) - tensor(0.5000) + tensor(0.6667) >>> multilabel_precision(preds, target, num_labels=3, average=None) tensor([1.0000, 0.0000, 0.5000]) @@ -345,7 +345,7 @@ def multilabel_precision( >>> preds = tensor([[[0.59, 0.91], [0.91, 0.99], [0.63, 0.04]], ... [[0.38, 0.04], [0.86, 0.780], [0.45, 0.37]]]) >>> multilabel_precision(preds, target, num_labels=3, multidim_average='samplewise') - tensor([0.3333, 0.0000]) + tensor([0.4000, 0.0000]) >>> multilabel_precision(preds, target, num_labels=3, multidim_average='samplewise', average=None) tensor([[0.5000, 0.5000, 0.0000], [0.0000, 0.0000, 0.0000]]) @@ -451,7 +451,7 @@ def multiclass_recall( preds: Tensor, target: Tensor, num_classes: int, - average: Optional[Literal["micro", "macro", "weighted", "none"]] = "macro", + average: Optional[Literal["micro", "macro", "weighted", "none"]] = "micro", top_k: int = 1, multidim_average: Literal["global", "samplewise"] = "global", ignore_index: Optional[int] = None, @@ -519,7 +519,7 @@ def multiclass_recall( >>> target = tensor([2, 1, 0, 0]) >>> preds = tensor([2, 1, 0, 1]) >>> multiclass_recall(preds, target, num_classes=3) - tensor(0.8333) + tensor(0.7500) >>> multiclass_recall(preds, target, num_classes=3, average=None) tensor([0.5000, 1.0000, 1.0000]) @@ -531,7 +531,7 @@ def multiclass_recall( ... [0.71, 0.09, 0.20], ... [0.05, 0.82, 0.13]]) >>> multiclass_recall(preds, target, num_classes=3) - tensor(0.8333) + tensor(0.7500) >>> multiclass_recall(preds, target, num_classes=3, average=None) tensor([0.5000, 1.0000, 1.0000]) @@ -540,7 +540,7 @@ def multiclass_recall( >>> target = tensor([[[0, 1], [2, 1], [0, 2]], [[1, 1], [2, 0], [1, 2]]]) >>> preds = tensor([[[0, 2], [2, 0], [0, 1]], [[2, 2], [2, 1], [1, 0]]]) >>> multiclass_recall(preds, target, num_classes=3, multidim_average='samplewise') - tensor([0.5000, 0.2778]) + tensor([0.5000, 0.3333]) >>> multiclass_recall(preds, target, num_classes=3, multidim_average='samplewise', average=None) tensor([[1.0000, 0.0000, 0.5000], [0.0000, 0.3333, 0.5000]]) @@ -571,7 +571,7 @@ def multilabel_recall( target: Tensor, num_labels: int, threshold: float = 0.5, - average: Optional[Literal["micro", "macro", "weighted", "none"]] = "macro", + average: Optional[Literal["micro", "macro", "weighted", "none"]] = "micro", multidim_average: Literal["global", "samplewise"] = "global", ignore_index: Optional[int] = None, validate_args: bool = True, diff --git a/src/torchmetrics/functional/classification/specificity.py b/src/torchmetrics/functional/classification/specificity.py index c4dc32c8d4b..6ae68c6c20f 100644 --- a/src/torchmetrics/functional/classification/specificity.py +++ b/src/torchmetrics/functional/classification/specificity.py @@ -132,7 +132,7 @@ def multiclass_specificity( preds: Tensor, target: Tensor, num_classes: int, - average: Optional[Literal["micro", "macro", "weighted", "none"]] = "macro", + average: Optional[Literal["micro", "macro", "weighted", "none"]] = "micro", top_k: int = 1, multidim_average: Literal["global", "samplewise"] = "global", ignore_index: Optional[int] = None, @@ -198,7 +198,7 @@ def multiclass_specificity( >>> target = tensor([2, 1, 0, 0]) >>> preds = tensor([2, 1, 0, 1]) >>> multiclass_specificity(preds, target, num_classes=3) - tensor(0.8889) + tensor(0.8750) >>> multiclass_specificity(preds, target, num_classes=3, average=None) tensor([1.0000, 0.6667, 1.0000]) @@ -210,7 +210,7 @@ def multiclass_specificity( ... [0.71, 0.09, 0.20], ... [0.05, 0.82, 0.13]]) >>> multiclass_specificity(preds, target, num_classes=3) - tensor(0.8889) + tensor(0.8750) >>> multiclass_specificity(preds, target, num_classes=3, average=None) tensor([1.0000, 0.6667, 1.0000]) @@ -219,7 +219,7 @@ def multiclass_specificity( >>> target = tensor([[[0, 1], [2, 1], [0, 2]], [[1, 1], [2, 0], [1, 2]]]) >>> preds = tensor([[[0, 2], [2, 0], [0, 1]], [[2, 2], [2, 1], [1, 0]]]) >>> multiclass_specificity(preds, target, num_classes=3, multidim_average='samplewise') - tensor([0.7500, 0.6556]) + tensor([0.7500, 0.6667]) >>> multiclass_specificity(preds, target, num_classes=3, multidim_average='samplewise', average=None) tensor([[0.7500, 0.7500, 0.7500], [0.8000, 0.6667, 0.5000]]) @@ -240,7 +240,7 @@ def multilabel_specificity( target: Tensor, num_labels: int, threshold: float = 0.5, - average: Optional[Literal["micro", "macro", "weighted", "none"]] = "macro", + average: Optional[Literal["micro", "macro", "weighted", "none"]] = "micro", multidim_average: Literal["global", "samplewise"] = "global", ignore_index: Optional[int] = None, validate_args: bool = True, diff --git a/src/torchmetrics/functional/classification/stat_scores.py b/src/torchmetrics/functional/classification/stat_scores.py index 0a9d819397d..ece3feda222 100644 --- a/src/torchmetrics/functional/classification/stat_scores.py +++ b/src/torchmetrics/functional/classification/stat_scores.py @@ -220,7 +220,7 @@ def binary_stat_scores( def _multiclass_stat_scores_arg_validation( num_classes: Optional[int], top_k: int = 1, - average: Optional[Literal["micro", "macro", "weighted", "none"]] = "macro", + average: Optional[Literal["micro", "macro", "weighted", "none"]] = "micro", multidim_average: Literal["global", "samplewise"] = "global", ignore_index: Optional[int] = None, zero_division: float = 0, @@ -380,7 +380,7 @@ def _multiclass_stat_scores_update( target: Tensor, num_classes: int, top_k: int = 1, - average: Optional[Literal["micro", "macro", "weighted", "none"]] = "macro", + average: Optional[Literal["micro", "macro", "weighted", "none"]] = "micro", multidim_average: Literal["global", "samplewise"] = "global", ignore_index: Optional[int] = None, ) -> tuple[Tensor, Tensor, Tensor, Tensor]: @@ -461,7 +461,7 @@ def _multiclass_stat_scores_compute( fp: Tensor, tn: Tensor, fn: Tensor, - average: Optional[Literal["micro", "macro", "weighted", "none"]] = "macro", + average: Optional[Literal["micro", "macro", "weighted", "none"]] = "micro", multidim_average: Literal["global", "samplewise"] = "global", ) -> Tensor: """Stack statistics and compute support also. @@ -489,7 +489,7 @@ def multiclass_stat_scores( preds: Tensor, target: Tensor, num_classes: int, - average: Optional[Literal["micro", "macro", "weighted", "none"]] = "macro", + average: Optional[Literal["micro", "macro", "weighted", "none"]] = "micro", top_k: int = 1, multidim_average: Literal["global", "samplewise"] = "global", ignore_index: Optional[int] = None, @@ -602,7 +602,7 @@ def multiclass_stat_scores( def _multilabel_stat_scores_arg_validation( num_labels: int, threshold: float = 0.5, - average: Optional[Literal["micro", "macro", "weighted", "none"]] = "macro", + average: Optional[Literal["micro", "macro", "weighted", "none"]] = "micro", multidim_average: Literal["global", "samplewise"] = "global", ignore_index: Optional[int] = None, zero_division: float = 0, @@ -726,7 +726,7 @@ def _multilabel_stat_scores_compute( fp: Tensor, tn: Tensor, fn: Tensor, - average: Optional[Literal["micro", "macro", "weighted", "none"]] = "macro", + average: Optional[Literal["micro", "macro", "weighted", "none"]] = "micro", multidim_average: Literal["global", "samplewise"] = "global", ) -> Tensor: """Stack statistics and compute support also. @@ -753,7 +753,7 @@ def multilabel_stat_scores( target: Tensor, num_labels: int, threshold: float = 0.5, - average: Optional[Literal["micro", "macro", "weighted", "none"]] = "macro", + average: Optional[Literal["micro", "macro", "weighted", "none"]] = "micro", multidim_average: Literal["global", "samplewise"] = "global", ignore_index: Optional[int] = None, validate_args: bool = True,