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 __init__(
      self,
      kernel_size,
      filters,
      stage,
      block,
      data_format,
      strides=(2, 2),
  ):
      super(_ConvBlock, self).__init__(name="")
      filters1, filters2, filters3 = filters
  
      conv_name_base = "res" + str(stage) + block + "_branch"
      bn_name_base = "bn" + str(stage) + block + "_branch"
      bn_axis = 1 if data_format == "channels_first" else 3
  
      self.conv2a = layers.Conv2D(
          filters1,
          (1, 1),
          strides=strides,
          name=conv_name_base + "2a",
          data_format=data_format,
      )
      self.bn2a = layers.BatchNormalization(
          axis=bn_axis, name=bn_name_base + "2a"
      )
  
      self.conv2b = layers.Conv2D(
          filters2,
          kernel_size,
          padding="same",
          name=conv_name_base + "2b",
          data_format=data_format,
      )
      self.bn2b = layers.BatchNormalization(
          axis=bn_axis, name=bn_name_base + "2b"
      )
  
      self.conv2c = layers.Conv2D(
          filters3,
          (1, 1),
          name=conv_name_base + "2c",
          data_format=data_format,
      )
      self.bn2c = layers.BatchNormalization(
          axis=bn_axis, name=bn_name_base + "2c"
      )
  
      self.conv_shortcut = layers.Conv2D(
          filters3,
          (1, 1),
          strides=strides,
          name=conv_name_base + "1",
          data_format=data_format,
      )
      self.bn_shortcut = layers.BatchNormalization(
          axis=bn_axis, name=bn_name_base + "1"
      )
  
file_path: tensorflow-upstream/tensorflow/python/eager/benchmarks/resnet50/resnet50.py
imports: import functools
  import tensorflow
label_desc: Use image node_id 1 to create a new _ConvBlock object from inherited base classes: tf.keras with example: obj = _ConvBlock(kernel_size, filters, stage, block, data_format, strides)