class_docstr: Graph compiler for MMI loss.
  The decoding graph is a composition of the auxiliary graph and the topology.
  It is returned along with the supervision graph on every compile() call.
code: def to(self, device: torch.device):
      if self.decoding_graph is not None:
          self.decoding_graph = self.decoding_graph.to(device)
      super().to(device)
  
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 MmiGraphCompiler obj's underlying member method code with example usage: obj.to(device) without return types