class_docstr: Meter to calculate mean AP metric for multi-label image classification task
  on multiple output single target.
  
  Supports Single target and multiple output. A list of mean AP meters is
  constructed and each output has a meter associated.
  
  Args:
      meters_config (AttrDict): config containing the meter settings
  
  meters_config should specify the num_meters and meter_names
class_docstr_tok: ["Meter","to","calculate","mean","AP","metric","for","multi-label","image","classification","task","on","multiple","output","single","target",".","Supports","Single","target","and","multiple","output",".","A","list","of","mean","AP","meters","is","constructed","and","each","output","has","a","meter","associated",".","Args",":","meters_config","(","AttrDict",")",":","config","containing","the","meter","settings","meters_config","should","specify","the","num_meters","and","meter_names"]
docstr: Value of the meter globally synced. For each output, mean AP and AP for each class is
  returned.
docstr_tok: ["Value","of","the","meter","globally","synced",".","For","each","output",",","mean","AP","and","AP","for","each","class","is","returned","."]
code: def value(self):
      """
      Value of the meter globally synced. For each output, mean AP and AP for each class is
      returned.
      """
      val_dict = {}
      for ind, meter in enumerate(self._meters):
          meter_val = meter.value
          sample_count = meter._scores.shape[0]
          val_dict[ind] = {
              "val": meter_val,
              "sample_count": sample_count,
          }
      output_dict = {}
      output_dict["mAP"] = {}
      output_dict["AP"] = {}
      for ind in range(len(self._meters)):
          meter_name = (
              self._meter_names[ind]
              if (len(self._meter_names) > 0)
              else ind
          )
          val = 100.0 * round(float(val_dict[ind]["val"]["mAP"]), 6)
          ap_matrix = val_dict[ind]["val"]["AP"].tolist()
          # we could have several meters with the same name. We append the result
          # to the dict.
          if meter_name not in output_dict["mAP"]:
              output_dict["mAP"][meter_name] = [val]
              output_dict["AP"][meter_name] = ap_matrix
          else:
              output_dict["mAP"][meter_name].append(val)
              output_dict["AP"][meter_name].append(ap_matrix)
      for k in output_dict["mAP"]:
          if len(output_dict["mAP"][k]) == 1:
              output_dict["mAP"][k] = output_dict["mAP"][k][0]
      return output_dict
  
imports: import pprint
  from typing import List, Union
  import torch
  from classy_vision.generic.util import is_pos_int
  from classy_vision.meters import ClassyMeter, register_meter
  from vissl.config import AttrDict
  from vissl.meters.mean_ap_meter import MeanAPMeter
label_desc: Use image node_id 4 for calling the MeanAPListMeter obj's underlying member method code with example usage: obj.value() and returns: output_dict