class_docstr: Default graph compiler for RNNT loss.
  Each supervision graph is composed with the corresponding RNNT emission adapter.
  
  If max_adapter_length is provided, the maximum adapter length is limited.
  
  Note:
    The actual number of classes is `num_classes` + 1 with <eps> as the class 0.
  
  Warning:
    It is currently not recommended to use topologies other than "minimal".
code: def compile(
      self, targets: torch.Tensor, target_lengths: torch.Tensor
  ) -> "k2.Fsa":
      supervision_graphs = add_self_loops(
          super().compile(targets, target_lengths),
          self._builder.eps_num,
          "input",
      )
  
      adapters = self._builder(
          torch.where(
              target_lengths > self.max_adapter_length,
              self.max_adapter_length,
              target_lengths,
          )
          if self.max_adapter_length > 0
          and self.max_adapter_length < target_lengths.max()
          else target_lengths
      ).to(device=self.device)
      return k2.intersect(
          adapters, supervision_graphs, treat_epsilons_specially=False
      )
  
imports: from typing import Optional, Tuple
  import torch
  from nemo.collections.asr.parts.k2.utils import add_self_loops, compose_with_self_loops, intersect_with_self_loops
  from nemo.core.utils.k2_guard import k2
label_desc: Use image node_id 2 for calling the RnntTopologyCompiler obj's underlying member method code with example usage: obj.compile(targets, target_lengths) and returns: k2