class_docstr: Fetch shape argument from ``ShapeProp`` without re-executing
  the ``GraphModule`` from scratch.
class_docstr_tok: ["Fetch","shape","argument","from","``","ShapeProp","``","without","re-executing","the","``","GraphModule","``","from","scratch","."]
docstr: Run `module` via interpretation and profile the execution
  of each ``Node``.
  
  Args:
      *args (Tensor): The sample input, not used
      device (torch.device): The device to place the execution, default to ``None``
  
  Returns:
      Any: The value returned from executing the Module
docstr_tok: ["Run","`","module","`","via","interpretation","and","profile","the","execution","of","each","``","Node","``",".","Args",":","*","args","(","Tensor",")",":","The","sample","input",",","not","used","device","(","torch.device",")",":","The","device","to","place","the","execution",",","default","to","``","None","``","Returns",":","Any",":","The","value","returned","from","executing","the","Module"]
code: def propagate(self, *args, device=None):
      """
      Run `module` via interpretation and profile the execution
      of each ``Node``.
  
      Args:
          *args (Tensor): The sample input, not used
          device (torch.device): The device to place the execution, default to ``None``
  
      Returns:
          Any: The value returned from executing the Module
      """
      initial_env = self.fetch_initial_env(device)
  
      return self.run(initial_env=initial_env)
  
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 4 for calling the GraphProfiler obj's underlying member method code with example usage: obj.propagate() and returns: self