code: def emit_DataInput(self, IR_node):
      shape = [
          dim.size if dim.size != -1 else 1
          for dim in IR_node.IR_layer.attr["shape"].shape.dim
      ]
      shape_str = ", ".join("%s" % i for i in shape)
      if IR_node.layer.attr["dtype"].type == graph_pb2.DT_UNDEFINED:
          IR_node.layer.attr["dtype"].type = graph_pb2.DT_FLOAT32
      dtype_str = self.dtype_map[IR_node.layer.attr["dtype"].type]
      self.add_body(
          1,
          "{:<15} = helper.make_tensor_value_info('{}', {}, ({},))".format(
              IR_node.variable_name + "_orig",
              IR_node.variable_name + "_orig",
              dtype_str,
              shape_str,
          ),
      )
      self.add_body(
          1,
          "{:15} = helper.make_node('Transpose', inputs=['{}'], outputs=['{}'], perm=[0, 3, 1, 2], name='{}')".format(
              IR_node.variable_name,
              IR_node.variable_name + "_orig",
              IR_node.variable_name,
              IR_node.variable_name,
          ),
      )
      self.inputs.append(IR_node.variable_name + "_orig")
      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 7 for calling the OnnxEmitter obj's underlying member method code with example usage: obj.emit_DataInput(IR_node) without return types