code: def emit_FullyConnected(self, IR_node):
      self.check_if_need_transpose(IR_node)
      use_bias = IR_node.get_attr("use_bias", True)
      units = IR_node.get_attr("units")
  
      self.add_body(
          1,
          "{:15} = _weights_dict['{}']['weights']".format(
              IR_node.variable_name + "_weight_array", IR_node.name
          ),
      )
  
      self.add_body(
          1,
          "{:15} = helper.make_tensor_value_info('{}', onnx.mapping.NP_TYPE_TO_TENSOR_TYPE[{}.dtype], list({}.shape))".format(
              IR_node.variable_name + "_weight",
              IR_node.variable_name + "_weight",
              IR_node.variable_name + "_weight_array",
              IR_node.variable_name + "_weight_array",
          ),
      )
  
      self.add_body(
          1,
          "{:15} = helper.make_tensor(name='{}', data_type=onnx.mapping.NP_TYPE_TO_TENSOR_TYPE[{}.dtype], dims={}.shape, vals={}.flatten().astype(float))".format(
              IR_node.variable_name + "_weight_init",
              IR_node.variable_name + "_weight",
              IR_node.variable_name + "_weight_array",
              IR_node.variable_name + "_weight_array",
              IR_node.variable_name + "_weight_array",
          ),
      )
  
      if use_bias:
          self.add_body(
              1,
              "{:15} = _weights_dict['{}']['bias'].squeeze()".format(
                  IR_node.variable_name + "_bias_array", IR_node.name
              ),
          )
      else:
          self.add_body(
              1,
              "{:15} = np.zeros({})".format(
                  IR_node.variable_name + "_bias_array", units
              ),
          )
      self.add_body(
          1,
          "{:15} = helper.make_tensor_value_info('{}', onnx.mapping.NP_TYPE_TO_TENSOR_TYPE[{}.dtype], list({}.shape))".format(
              IR_node.variable_name + "_bias",
              IR_node.variable_name + "_bias",
              IR_node.variable_name + "_bias_array",
              IR_node.variable_name + "_bias_array",
          ),
      )
  
      self.add_body(
          1,
          "{:15} = helper.make_tensor(name='{}', data_type=onnx.mapping.NP_TYPE_TO_TENSOR_TYPE[{}.dtype], dims={}.shape, vals={}.flatten().astype(float))".format(
              IR_node.variable_name + "_bias_init",
              IR_node.variable_name + "_bias",
              IR_node.variable_name + "_bias_array",
              IR_node.variable_name + "_bias_array",
              IR_node.variable_name + "_bias_array",
          ),
      )
      self.add_body(
          1,
          "{:15} = helper.make_node('Gemm', inputs=['{}', '{}', '{}'], outputs=['{}'], name='{}')".format(
              IR_node.variable_name,
              self.parent_variable_name(IR_node),
              IR_node.variable_name + "_weight",
              IR_node.variable_name + "_bias",
              IR_node.variable_name,
              IR_node.variable_name,
          ),
      )
      self.initializer.append(IR_node.variable_name + "_weight_init")
      self.initializer.append(IR_node.variable_name + "_bias_init")
      self.inputs.append(IR_node.variable_name + "_weight")
      self.inputs.append(IR_node.variable_name + "_bias")
      self.nodes.append(IR_node.variable_name)
  
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 14 for calling the OnnxEmitter obj's underlying member method code with example usage: obj.emit_FullyConnected(IR_node) without return types