code: def gen_code(self, phase):
      self.phase = phase
      self.add_body(0, self.header_code)
  
      self.inputs = []
      self.outputs = []
      self.nodes = []
      self.initializer = []
  
      for layer in self.IR_graph.topological_sort:
          current_node = self.IR_graph.get_node(layer)
          node_type = current_node.type
  
          if hasattr(self, "emit_" + node_type):
              func = getattr(self, "emit_" + node_type)
              func(current_node)
          else:
              print(
                  "OnnxEmitter has not supported operator [%s]."
                  % (node_type)
              )
              self.emit_UNKNOWN(current_node)
  
      self._process_output_layers()
  
      self.add_body(
          1,
          "graph = helper.make_graph([{}], 'mmdnn', [{}], [{}], [{}])".format(
              ", ".join(self.nodes),
              ", ".join(self.inputs),
              ", ".join(self.outputs),
              ", ".join(self.initializer),
          ),
      )
      self.add_body(
          1,
          "return helper.make_model(graph, opset_imports=[helper.make_opsetid('', 6)])",
      )
      return self.body_code
  
imports: from mmdnn.conversion.common.DataStructure.emitter import Emitter
  from mmdnn.conversion.common.IR.IR_graph import IRGraph
  import os.path
  import mmdnn.conversion.common.IR.graph_pb2
  import numpy
  import sys
label_desc: Use image node_id 3 for calling the OnnxEmitter obj's underlying member method code with example usage: obj.gen_code(phase) and returns: self