class_docstr: Utility class to track recall@k for various k, split by categories.
class_docstr_tok: ["Utility","class","to","track","recall","@","k","for","various","k",",","split","by","categories","."]
docstr: Return a condensed report of the results as a dict of dict.
  
  report[k][cat] is the recall@k for the given category
docstr_tok: ["Return","a","condensed","report","of","the","results","as","a","dict","of","dict",".","report","[","k","]","[","cat","]","is","the","recall","@","k","for","the","given","category"]
code: def report(self) -> Dict[str, Dict[str, float]]:
      """Return a condensed report of the results as a dict of dict.
  
      report[k][cat] is the recall@k for the given category
      """
      report: Dict[str, Dict[str, float]] = {}
      for k in self.total_byk_bycat:
          assert k in self.positives_byk_bycat
          report[str(k)] = {
              cat: self.positives_byk_bycat[k][cat]
              / self.total_byk_bycat[k][cat]
              for cat in self.total_byk_bycat[k]
          }
      return report
  
file_path: mmdetection/mmdet/evaluation/metrics/flickr30k_metric.py
imports: from collections import defaultdict
  from typing import Dict, List, Optional, Sequence
  import numpy
  from mmengine.evaluator import BaseMetric
  from mmengine.logging import MMLogger
  from mmdet.registry import METRICS
  from ..functional import bbox_overlaps
label_desc: Use image node_id 4 for calling the RecallTracker obj's underlying member method code with example usage: obj.report() and returns: report