hresholds in the tensor as bins for the calculation. ignore_index: Specifies a target value that is ignored and does not contribute to the metric calculation validate_args: bool indicating if input arguments and tensors should be validated for correctness. Set to ``False`` for faster computations. Returns: (tuple): a tuple of either 3 tensors or 3 lists containing - precision: if `thresholds=None` a list for each label is returned with an 1d tensor of size (n_thresholds+1, ) with precision values (length may differ between labels). If `thresholds` is set to something else, then a single 2d tensor of size (n_labels, n_thresholds+1) with precision values is returned. - recall: if `thresholds=None` a list for each label is returned with an 1d tensor of size (n_thresholds+1, ) with recall values (length may differ between labels). If `thresholds` is set to something else, then a single 2d tensor of size (n_labels, n_thresholds+1) with recall values is returned. - thresholds: if `thresholds=None` a list for each label is returned with an 1d tensor of size (n_thresholds, ) with increasing threshold values (length may differ between labels). If `threshold` is set to something else, then a single 1d tensor of size (n_thresholds, ) is returned with shared threshold values for all labels. Example: >>> from torchmetrics.functional.classification import multilabel_precision_recall_curve >>> preds = torch.tensor([[0.75, 0.05, 0.35], ... [0.45, 0.75, 0.05], ... [0.05, 0.55, 0.75], ... [0.05, 0.65, 0.05]]) >>> target = torch.tensor([[1, 0, 1], ... [0, 0, 0], ... [0, 1, 1], ... [1, 1, 1]]) >>> precision, recall, thresholds = multilabel_precision_recall_curve( ... preds, target, num_labels=3, thresholds=None ... ) >>> precision # doctest: +NORMALIZE_WHITESPACE [tensor([0.5000, 0.5000, 1.0000, 1.0000]), tensor([0.5000, 0.6667, 0.5000, 0.0000, 1.0000]), tensor([0.7500, 1.0000, 1.0000, 1.0000])] >>> recall # doctest: +NORMALIZE_WHITESPACE [tensor([1.0000, 0.5000, 0.5000, 0.0000]), tensor([1.0000, 1.0000, 0.5000, 0.0000, 0.0000]), tensor([1.0000, 0.6667, 0.3333, 0.0000])] >>> thresholds # doctest: +NORMALIZE_WHITESPACE [tensor([0.0500, 0.4500, 0.7500]), tensor([0.0500, 0.5500, 0.6500, 0.7500]), tensor([0.0500, 0.3500, 0.7500])] >>> multilabel_precision_recall_curve( ... preds, target, num_labels=3, thresholds=5 ... ) # doctest: +NORMALIZE_WHITESPACE (tensor([[0.5000, 0.5000, 1.0000, 1.0000, 0.0000, 1.0000], [0.5000, 0.6667, 0.6667, 0.0000, 0.0000, 1.0000], [0.7500, 1.0000, 1.0000, 1.0000, 0.0000, 1.0000]]), tensor([[1.0000, 0.5000, 0.5000, 0.5000, 0.0000, 0.0000], [1.0000, 1.0000, 1.0000, 0.0000, 0.0000, 0.0000], [1.0000, 0.6667, 0.3333, 0.3333, 0.0000, 0.0000]]), tensor([0.0000, 0.2500, 0.5000, 0.7500, 1.0000])) )