CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/pypi-torchmetrics

PyTorch native metrics library providing 400+ rigorously tested metrics across classification, regression, audio, image, text, and other ML domains

Overview
Eval results
Files

segmentation.mddocs/

Segmentation Metrics

Semantic and instance segmentation evaluation including Dice coefficients, Intersection over Union, and Hausdorff distance for pixel-level prediction assessment.

Capabilities

Dice Metrics

Dice similarity coefficient variants for segmentation evaluation.

class DiceScore(Metric):
    def __init__(
        self,
        num_classes: Optional[int] = None,
        threshold: float = 0.5,
        average: Optional[str] = "micro",
        mdmc_average: Optional[str] = None,
        ignore_index: Optional[int] = None,
        top_k: Optional[int] = None,
        multiclass: Optional[bool] = None,
        **kwargs
    ): ...

class GeneralizedDiceScore(Metric):
    def __init__(
        self,
        num_classes: Optional[int] = None,
        include_background: bool = True,
        weight_type: str = "square",
        **kwargs
    ): ...

Intersection over Union

IoU-based metrics for segmentation quality assessment.

class MeanIoU(Metric):
    def __init__(
        self,
        num_classes: int,
        ignore_index: Optional[int] = None,
        absent_score: float = 0.0,
        threshold: float = 0.5,
        **kwargs
    ): ...

Distance-Based Metrics

Metrics based on spatial distances between segmentation boundaries.

class HausdorffDistance(Metric):
    def __init__(
        self,
        percentile: Optional[float] = None,
        directed: bool = False,
        **kwargs
    ): ...

Usage Examples

import torch
from torchmetrics.segmentation import DiceScore, MeanIoU, HausdorffDistance

# Binary segmentation
dice_binary = DiceScore()
preds_binary = torch.rand(4, 1, 128, 128)  # Batch, channels, height, width
target_binary = torch.randint(0, 2, (4, 1, 128, 128)).float()

dice_result = dice_binary(preds_binary, target_binary)
print(f"Binary Dice Score: {dice_result:.4f}")

# Multi-class segmentation
num_classes = 5
iou_metric = MeanIoU(num_classes=num_classes)
preds_multi = torch.rand(2, num_classes, 64, 64)
target_multi = torch.randint(0, num_classes, (2, 64, 64))

iou_result = iou_metric(preds_multi, target_multi)
print(f"Mean IoU: {iou_result:.4f}")

# Hausdorff distance (requires binary masks)
hausdorff = HausdorffDistance()
binary_preds = (torch.rand(2, 1, 32, 32) > 0.5).float()
binary_targets = torch.randint(0, 2, (2, 1, 32, 32)).float()

hd_result = hausdorff(binary_preds, binary_targets)
print(f"Hausdorff Distance: {hd_result:.4f}")

Types

SegmentationMask = Tensor  # Binary or multi-class segmentation masks
WeightType = Union["square", "simple", "uniform"]

Install with Tessl CLI

npx tessl i tessl/pypi-torchmetrics

docs

audio.md

classification.md

clustering.md

detection.md

functional.md

image.md

index.md

multimodal.md

nominal.md

regression.md

retrieval.md

segmentation.md

shape.md

text.md

utilities.md

video.md

tile.json