docstr: Convert a flatten layer from keras to coreml.
docstr_tok: ["Convert","a","flatten","layer","from","keras","to","coreml","."]
code: def emit_Flatten(self, IR_node):
      """
      Convert a flatten layer from keras to coreml.
      """
      # Get input and output names
      input_name = self.IR_graph.get_node(IR_node.in_edges[0]).real_name
      output_name = IR_node.out_edges[0]
  
      """
          # blob_order == 0 if the input blob needs not be rearranged
          # blob_order == 1 if the input blob needs to be rearranged
          blob_order = 0
  
          # using keras_layer.input.shape have a "?" (Dimension[None] at the front),
          # making a 3D tensor with unknown batch size 4D
          if len(keras_layer.input.shape) == 4:
              blob_order = 1
          """
  
      self.builder.add_flatten(
          name=IR_node.name,
          mode=1,
          input_name=input_name,
          output_name=IR_node.name,
      )
  
imports: from __future__ import division
  import os
  import numpy
  from six import string_types
  from mmdnn.conversion.common.IR.IR_graph import IRGraph, IRGraphNode
  import mmdnn.conversion.common.IR.graph_pb2
  from mmdnn.conversion.common.IR.graph_pb2 import NodeDef, GraphDef, DataType
  from mmdnn.conversion.common.DataStructure.emitter import Emitter
  from mmdnn.conversion.common.utils import *
  from mmdnn.conversion.coreml.coreml_utils import _infer_coreml_input_shape
  from coremltools.models.neural_network import NeuralNetworkBuilder
  from coremltools.models import datatypes
  from coremltools.models import MLModel
  from coremltools.models.utils import save_spec
label_desc: Use image node_id 19 for calling the CoreMLEmitter obj's underlying member method code with example usage: obj.emit_Flatten(IR_node) without return types