code: def convert_fully_connected(node, **kwargs):
      
      name, input_nodes, attrs = get_inputs(node, kwargs)
  
      initializer = kwargs["initializer"]
  
      no_bias = get_boolean_attribute_value(attrs, "no_bias")
  
      fcnode = []
  
      op_name = "flatten_" + str(kwargs["idx"])
      flatten_node = onnx.helper.make_node(
          'Flatten',
          inputs=[input_nodes[0]],
          outputs=[op_name],
          name=op_name
      )
  
      input_nodes[0] = op_name
      fcnode.append(flatten_node)
  
      if no_bias:
          data_type = onnx.mapping.NP_TYPE_TO_TENSOR_TYPE[np.dtype('int64')]
          bias_name = "bias" + str(kwargs["idx"])
          tensor_node = onnx.helper.make_tensor_value_info(bias_name, data_type, (1,))
          initializer.append(
              onnx.helper.make_tensor(
                  name=bias_name,
                  data_type=data_type,
                  dims=(1,),
                  vals=[0],
                  raw=False,
              )
          )
          input_nodes.append(bias_name)
          fcnode.append(tensor_node)
  
      node = onnx.helper.make_node(
          "Gemm",
          input_nodes,  # input (A, B, C) - C can be in place
          [name],  # output
          alpha=1.0,
          beta=1.0,
          transA=False,
          transB=True,
          name=name
      )
  
      fcnode.append(node)
  
      return fcnode
docs: Map MXNet's FullyConnected operator attributes to onnx's Gemm operator
      and return the created node.