code: def post_order_recursive(root, root_t):
      """
      return a list by the topological ordering (postorder of Depth-first search)
      Args:
          root: singa operator
          root_t: tensor
      Returns:
          deque[int]
      """
  
      def recursive(root, yid, root_t):
          if root:
              # srcop: operator for a input of root
              # yid: id(output of this operator)
              # y: output of this operator
              for srcop, yid, y, _ in root.src:
                  recursive(srcop, yid, y)
  
              if type(root).__name__ == "Dummy":
                  if root_t != None:
                      # constant within a node: weight
                      weights[root.name] = root_t
                  else:
                      # constant outside a node: input
                      inputs[root.name] = root_t
              else:
                  nodes[root.name] = root
  
      nodes = OrderedDict()
      weights = OrderedDict()
      inputs = OrderedDict()
  
      recursive(root, None, root_t)
      return nodes, weights, inputs
  
file_path: singa/python/singa/utils.py
imports: import sys
  import numpy
  import collections
  from .None import singa_wrap
label_desc: Use image node_id 9 for calling a global function with example usage: post_order_recursive(root, root_t) and returns: nodes,  weights,  inputs