class_docstr: _ConvBlock is the block that has a conv layer at shortcut.
  
  Args:
      kernel_size: the kernel size of middle conv layer at main path
      filters: list of integers, the filters of 3 conv layer at main path
      stage: integer, current stage label, used for generating layer names
      block: 'a','b'..., current block label, used for generating layer names
      data_format: data_format for the input ('channels_first' or
        'channels_last').
      strides: strides for the convolution. Note that from stage 3, the first
       conv layer at main path is with strides=(2,2), and the shortcut should
       have strides=(2,2) as well.
code: def call(self, input_tensor, training=False):
      x = self.conv2a(input_tensor)
      x = self.bn2a(x, training=training)
      x = tf.nn.relu(x)
  
      x = self.conv2b(x)
      x = self.bn2b(x, training=training)
      x = tf.nn.relu(x)
  
      x = self.conv2c(x)
      x = self.bn2c(x, training=training)
  
      shortcut = self.conv_shortcut(input_tensor)
      shortcut = self.bn_shortcut(shortcut, training=training)
  
      x += shortcut
      return tf.nn.relu(x)
  
file_path: tensorflow/tensorflow/python/eager/benchmarks/resnet50/resnet50.py
imports: import functools
  import tensorflow
label_desc: Use image node_id 2 for calling the _ConvBlock obj's underlying member method code with example usage: obj.call(input_tensor, training) and returns: tf