class_docstr: Determine which FPN level each RoI in a set of RoIs should map to based
  on the heuristic in the FPN paper.
  
  Args:
      k_min (int)
      k_max (int)
      canonical_scale (int)
      canonical_level (int)
      eps (float)
docstr: Args:
      boxlists (list[BoxList])
docstr_tok: ["Args",":","boxlists","(","list","[","BoxList","]",")"]
code: def __call__(self, boxlists: List[Tensor]) -> Tensor:
      """
      Args:
          boxlists (list[BoxList])
      """
      # Compute level ids
      s = torch.sqrt(
          torch.cat([box_area(boxlist) for boxlist in boxlists])
      )
  
      # Eqn.(1) in FPN paper
      target_lvls = torch.floor(
          self.lvl0
          + torch.log2(s / self.s0)
          + torch.tensor(self.eps, dtype=s.dtype)
      )
      target_lvls = torch.clamp(
          target_lvls, min=self.k_min, max=self.k_max
      )
      return (target_lvls.to(torch.int64) - self.k_min).to(torch.int64)
  
imports: from typing import Dict, List, Optional, Tuple, Union
  import torch
  import torch.fx
  import torchvision
  from torch import nn, Tensor
  from torchvision.ops.boxes import box_area
  from ..utils import _log_api_usage_once
  from .roi_align import roi_align
label_desc: Use image node_id 2 for calling the LevelMapper obj's underlying member method code with example usage: obj.__call__(boxlists) and returns: unknown