Compute the PermutationInvariantTraining metric — provided by torchmetrics. Use when the user has predictions and ground-truth and needs to compute PermutationInvariantTraining, or asks how to score with PermutationInvariantTraining.
Installs into .claude/skills of the current project.
Are you the author of Permutationinvarianttraining?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/qhjqhj00-permutationinvarianttraining)
---
name: permutationinvarianttraining
description: Compute the PermutationInvariantTraining metric — provided by torchmetrics. Use when the user has predictions and ground-truth and needs to compute PermutationInvariantTraining, or asks how to score with PermutationInvariantTraining.
metadata:
skill_kind: metric
source_lib: torchmetrics
import_path: torchmetrics.PermutationInvariantTraining
source: library_introspection
---
# permutationinvarianttraining
> Metric `PermutationInvariantTraining` from `torchmetrics` (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
```python
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
```python
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)`.