code: def trace_shape(self, source_node, IR_node):
      input_node = self.IR_layer_map[IR_node.input[0]]
      while (
          len(input_node.attr["_output_shapes"].list.shape[0].dim) <= 2
      ):
          IR_node = input_node
          input_node = self.IR_layer_map[IR_node.input[0]]
  
      input_shape = list()
      for e in input_node.attr["_output_shapes"].list.shape[0].dim:
          input_shape.append(e.size)
      C = input_shape.pop()
      ret = [C] + input_shape[1:]
      return ret
  
imports: import os
  import sys
  import math
  import mxnet
  import numpy
  from mmdnn.conversion.mxnet.mxnet_graph import MXNetGraph
  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 6 for calling the MXNetParser obj's underlying member method code with example usage: obj.trace_shape(source_node, IR_node) and returns: ret