code: def rename_Convolution2D(self, source_node):
      assert source_node.layer.is_block
  
      # Convolution
      kwargs = dict()
      conv_IR_node = self.IR_graph.node.add()
      conv_node = (
          source_node.layer.block_root.inputs[0].owner.inputs[0].owner
      )
  
      conv_IR_node.name = conv_node.uid
      conv_IR_node.op = "Conv"
      conv_IR_node.input.append(
          self.get_parent(source_node.name, [0]).real_name
      )
  
      # Kernel
      conv_weight = (
          source_node.layer.block_root.inputs[0]
          .owner.inputs[0]
          .owner.inputs[0]
      )
      conv_weight = self.get_ndarray(conv_weight)
      W = self.channel_first_conv_kernel_to_IR(conv_weight)
      self.set_weight(conv_IR_node.name, "weights", W)
  
      # Attributes
      conv_attr = (
          source_node.layer.block_root.inputs[0]
          .owner.inputs[0]
          .owner.attributes
      )
  
      kwargs["strides"] = [1] + list(conv_attr["strides"])[1:] + [1]
      kwargs["dilations"] = [1] + list(conv_attr["dilation"])[1:] + [1]
      kwargs["kernel_shape"] = list(W.shape)
      padding = conv_attr["autoPadding"][1:]
  
      for pad in padding:
          assert pad == padding[0]
  
      kwargs["auto_pad"] = "SAME_LOWER" if padding[0] else "VALID"
      kwargs["pads"] = self._convert_padding_to_IR(
          kwargs["kernel_shape"][:-2], padding
      )
  
      kwargs["use_bias"] = True
  
      assign_IRnode_values(conv_IR_node, kwargs)
  
      # Bias
      plus = source_node.layer.block_root.inputs[0].owner.inputs[1]
      plus = np.squeeze(self.get_ndarray(plus))
      self.set_weight(conv_IR_node.name, "bias", plus)
  
      # Activation
      activation = source_node.layer.block_root.owner.op_name
  
      activation_IR = self.IR_graph.node.add()
      activation_IR.name = source_node.name
      activation_IR.input.append(conv_IR_node.name)
      if activation == "ReLU":
          activation_IR.op = "Relu"
      else:
          raise ValueError()
  
imports: import os
  import numpy
  from six.moves import xrange
  import cntk
  from mmdnn.conversion.cntk.cntk_graph import CntkGraph
  import mmdnn.conversion.common.IR.graph_pb2
  from mmdnn.conversion.common.IR.graph_pb2 import NodeDef, GraphDef, DataType
  from mmdnn.conversion.common.utils import *
  from mmdnn.conversion.common.DataStructure.parser import Parser
label_desc: Use image node_id 37 for calling the CntkParser obj's underlying member method code with example usage: obj.rename_Convolution2D(source_node) without return types