class_docstr: Fetch shape argument from ``ShapeProp`` without re-executing
  the ``GraphModule`` from scratch.
docstr: Run `module` via interpretation and return the result.
  
  Args:
      *args: The arguments to the Module to run, in positional order
      initial_env (Optional[Dict[Node, Any]]): An optional starting environment for execution.
          This is a dict mapping `Node` to any value. This can be used, for example, to
          pre-populate results for certain `Nodes` so as to do only partial evaluation within
          the interpreter.
      enable_io_processing (bool): If true, we process the inputs and outputs with graph's process_inputs and
          process_outputs function first before using them.
  
  Returns:
      Any: The value returned from executing the Module
docstr_tok: ["Run","`","module","`","via","interpretation","and","return","the","result",".","Args",":","*","args",":","The","arguments","to","the","Module","to","run",",","in","positional","order","initial_env","(","Optional","[","Dict","[","Node",",","Any","]","]",")",":","An","optional","starting","environment","for","execution",".","This","is","a","dict","mapping","`","Node","`","to","any","value",".","This","can","be","used",",","for","example",",","to","pre-populate","results","for","certain","`","Nodes","`","so","as","to","do","only","partial","evaluation","within","the","interpreter",".","enable_io_processing","(","bool",")",":","If","true",",","we","process","the","inputs","and","outputs","with","graph","'s","process_inputs","and","process_outputs","function","first","before","using","them",".","Returns",":","Any",":","The","value","returned","from","executing","the","Module"]
code: def run(
      self,
      *args,
      initial_env: Optional[Dict[Node, Any]] = None,
      enable_io_processing: bool = True,
  ) -> Any:
      """
      Run `module` via interpretation and return the result.
  
      Args:
          *args: The arguments to the Module to run, in positional order
          initial_env (Optional[Dict[Node, Any]]): An optional starting environment for execution.
              This is a dict mapping `Node` to any value. This can be used, for example, to
              pre-populate results for certain `Nodes` so as to do only partial evaluation within
              the interpreter.
          enable_io_processing (bool): If true, we process the inputs and outputs with graph's process_inputs and
              process_outputs function first before using them.
  
      Returns:
          Any: The value returned from executing the Module
      """
      self.env = initial_env if initial_env else {}
  
      # Positional function args are consumed left-to-right by
      # `placeholder` nodes. Use an iterator to keep track of
      # position and extract those values.
      if enable_io_processing:
          args = self.module.graph.process_inputs(*args)
      self.args_iter: Iterator[Any] = iter(args)
  
      for node in self.module.graph.nodes:
          self.run_node(node)  # No need to store.
  
          if self.garbage_collect_values:
              for to_delete in self.user_to_last_uses.get(node, []):
                  del self.env[to_delete]
  
          if node.op == "output":
              output_val = self.env[node]
              return (
                  self.module.graph.process_outputs(output_val)
                  if enable_io_processing
                  else output_val
              )
  
imports: from typing import Any, Dict, Iterator, List, Optional, Tuple
  import torch
  import torch.fx
  from torch.autograd.profiler_util import _format_memory
  from torch.fx import GraphModule
  from torch.fx.node import Argument, Node, Target
  from colossalai._analyzer._subclasses import flop_count
  from colossalai._analyzer.fx.node_util import MetaInfo
label_desc: Use image node_id 2 for calling the GraphProfiler obj's underlying member method code with example usage: obj.run() and returns: unknown