code: def _set_output_shape(source_node, IR_node):
      shape = graph_pb2.TensorShape()
      source_node_layer = source_node.layer
  
      layer_name = source_node_layer.output[0]
  
      shape_coreml = CoremlParser.shape_dict[layer_name]
      # (seq, batch, C, H, W)  & NHWC
  
      new_dim = shape.dim.add()
      if shape_coreml[1] == 1:
          new_dim.size = -1
      else:
          new_dim.size = shape_coreml[1]
      for index in [3, 4, 2]:
          new_dim = shape.dim.add()
          dim = shape_coreml[index]
          new_dim.size = dim if dim else -1
  
      IR_node.attr["_output_shapes"].list.shape.extend([shape])
  
imports: import os
  from six import string_types
  import numpy
  import math
  from coremltools.models.neural_network import NeuralNetworkBuilder
  from coremltools.models import datatypes
  from coremltools.models import MLModel
  from coremltools.models.utils import save_spec
  from coremltools.models._infer_shapes_nn_mlmodel import infer_shapes
  from coremltools.proto import Model_pb2, NeuralNetwork_pb2
  from mmdnn.conversion.coreml.coreml_graph import CoremlGraph
  import mmdnn.conversion.common.IR.graph_pb2
  from mmdnn.conversion.common.IR.graph_pb2 import NodeDef, GraphDef, DataType
  from mmdnn.conversion.common.DataStructure.parser import Parser
  from mmdnn.conversion.common.utils import *
label_desc: Use image node_id 5 for calling the CoremlParser obj's underlying member method code with example usage: obj._set_output_shape(source_node, IR_node) without return types