Skip to content
Discussion options

You must be logged in to vote

@phiyodr — as @SkafteNicki noted, the NaN behavior for absent classes was a known limitation. In v1.9.0, this is handled via the zero_division parameter:

from torchmetrics.classification import MultilabelAccuracy

acc = MultilabelAccuracy(
    num_labels=4,
    average="none",
    zero_division=0.0,  # return 0 instead of NaN for absent classes
)

per_class = acc(preds, target)
print(per_class.min(), per_class.max())  # no NaN issues

zero_division is available on all classification metrics (F1, Precision, Recall, Accuracy, etc.):

  • zero_division=0.0 — treat absent classes as score 0 (conservative)
  • zero_division=1.0 — treat absent classes as score 1 (optimistic)
  • Default (NaN) — flag absent …

Replies: 2 comments 1 reply

Comment options

You must be logged in to vote
1 reply
@phiyodr
Comment options

Comment options

You must be logged in to vote
0 replies
Answer selected by Borda
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
3 participants