permutationinvarianttraining
Metric
PermutationInvariantTrainingfromtorchmetrics(torchmetrics.PermutationInvariantTraining)
When to invoke this skill
The user has predictions + ground truth and asks to evaluate with PermutationInvariantTraining, or
mentions torchmetrics.PermutationInvariantTraining directly, or wants the standard torchmetrics implementation.
Reference signature
from torchmetrics import PermutationInvariantTraining
# _PermutationInvariantTraining(metric_func: Callable, mode: Literal['speaker-wise', 'permutation-wise'] = 'speaker-wise', eval_func: Literal['max', 'min'] = 'max', **kwargs: Any) -> None
Library docstring
Wrapper for deprecated import.
>>> import torch
>>> from torchmetrics.functional import scale_invariant_signal_noise_ratio
>>> preds = torch.randn(3, 2, 5) # [batch, spk, time]
>>> target = torch.randn(3, 2, 5) # [batch, spk, time]
>>> pit = _PermutationInvariantTraining(scale_invariant_signal_noise_ratio,
... mode="speaker-wise", eval_func="max")
>>> pit(preds, target)
tensor(-2.1065)
Quick recipe
import torchmetrics as _m
score = _m.PermutationInvariantTraining(y_true, y_pred)
Don'ts
- Don't reimplement when the library version handles edge cases (NaN, ties, empty inputs) better than a hand-rolled formula.
- Always check the library version's argument order — sklearn is
(y_true, y_pred)while torchmetrics is(preds, target).