class_docstr: This class implements the RecMetricComputation for AUPRC, i.e. Area Under the Curve.
  
  The constructor arguments are defined in RecMetricComputation.
  See the docstring of RecMetricComputation for more detail.
  Args:
      grouped_auprc (bool): If True, computes AUPRC per group and returns average AUPRC across all groups.
          The `grouping_keys` is provided during state updates along with predictions, labels, weights.
          This feature is currently not enabled for `fused_update_limit`.
code: def _init_states(self) -> None:
      if len(getattr(self, PREDICTIONS)) > 0:
          return
  
      getattr(self, PREDICTIONS).append(
          torch.zeros(
              (self._n_tasks, 1), dtype=torch.float, device=self.device
          )
      )
      getattr(self, LABELS).append(
          torch.zeros(
              (self._n_tasks, 1), dtype=torch.float, device=self.device
          )
      )
      getattr(self, WEIGHTS).append(
          torch.zeros(
              (self._n_tasks, 1), dtype=torch.float, device=self.device
          )
      )
      if self._grouped_auprc:
          getattr(self, GROUPING_KEYS).append(
              torch.tensor([-1], device=self.device)
          )
  
imports: from functools import partial
  from typing import Any, cast, Dict, List, Optional, Type
  import torch
  import torch.distributed
  import torch.nn.functional
  from torchrec.metrics.metrics_config import RecComputeMode, RecTaskInfo
  from torchrec.metrics.metrics_namespace import MetricName, MetricNamespace, MetricPrefix
  from torchrec.metrics.rec_metric import MetricComputationReport, RecMetric, RecMetricComputation, RecMetricException
label_desc: Use image node_id 2 for calling the AUPRCMetricComputation obj's underlying member method code with example usage: obj._init_states() without return types