code: def _traverse_graph(self, son_node):
      if not son_node.uid in self.visited:
          self.visited.add(son_node.uid)
  
          if son_node.is_block:
              inputs = [
                  input for _, input in son_node.block_arguments_mapping
              ]
  
          else:
              inputs = son_node.inputs
  
          for input_node in inputs:
              if input_node.is_output:
                  input_node = input_node.owner
                  if not input_node.uid in self.layer_map:
                      self.layer_map[input_node.uid] = CntkGraphNode(
                          input_node
                      )
                  self._make_connection(input_node.uid, son_node.uid)
                  self._traverse_graph(input_node)
  
              elif input_node.is_input:
                  if not input_node.uid in self.layer_map:
                      self.layer_map[input_node.uid] = CntkGraphNode(
                          input_node
                      )
                  self._make_connection(input_node.uid, son_node.uid)
  
              elif input_node.is_placeholder:
                  raise NotImplementedError(
                      "PlaceHolder of placeholder is not supported."
                  )
  
file_path: MMdnn/mmdnn/conversion/cntk/cntk_graph.py
imports: import cntk
  from mmdnn.conversion.common.DataStructure.graph import GraphNode, Graph
label_desc: Use image node_id 2 for calling the CntkGraph obj's underlying member method code with example usage: obj._traverse_graph(son_node) without return types