code: def residual_block_v2(
      x,
      filters,
      kernel_size=3,
      stride=1,
      conv_shortcut=False,
      name=None,
  ):
      """A residual block for ResNet*_v2.
  
      Args:
          x: Input tensor.
          filters: No of filters in the bottleneck layer.
          kernel_size: Kernel size of the bottleneck layer. Defaults to `3`.
          stride: Stride of the first layer. Defaults to `1`.
          conv_shortcut: Use convolution shortcut if `True`, otherwise
              use identity shortcut. Defaults to `True`
          name(optional): Name of the block
  
      Returns:
          Output tensor for the residual block.
      """
  
      if backend.image_data_format() == "channels_last":
          bn_axis = 3
      else:
          bn_axis = 1
  
      preact = layers.BatchNormalization(
          axis=bn_axis, epsilon=1.001e-5, name=name + "_preact_bn"
      )(x)
      preact = layers.Activation("relu", name=name + "_preact_relu")(
          preact
      )
  
      if conv_shortcut:
          shortcut = layers.Conv2D(
              4 * filters, 1, strides=stride, name=name + "_0_conv"
          )(preact)
      else:
          shortcut = (
              layers.MaxPooling2D(1, strides=stride)(x)
              if stride > 1
              else x
          )
  
      x = layers.Conv2D(
          filters, 1, strides=1, use_bias=False, name=name + "_1_conv"
      )(preact)
      x = layers.BatchNormalization(
          axis=bn_axis, epsilon=1.001e-5, name=name + "_1_bn"
      )(x)
      x = layers.Activation("relu", name=name + "_1_relu")(x)
  
      x = layers.ZeroPadding2D(
          padding=((1, 1), (1, 1)), name=name + "_2_pad"
      )(x)
      x = layers.Conv2D(
          filters,
          kernel_size,
          strides=stride,
          use_bias=False,
          name=name + "_2_conv",
      )(x)
      x = layers.BatchNormalization(
          axis=bn_axis, epsilon=1.001e-5, name=name + "_2_bn"
      )(x)
      x = layers.Activation("relu", name=name + "_2_relu")(x)
  
      x = layers.Conv2D(4 * filters, 1, name=name + "_3_conv")(x)
      x = layers.Add(name=name + "_out")([shortcut, x])
      return x
  
file_path: keras/keras/applications/resnet.py
imports: from keras import backend
  from keras import layers
  from keras.api_export import keras_export
  from keras.applications import imagenet_utils
  from keras.models import Functional
  from keras.ops import operation_utils
  from keras.utils import file_utils
label_desc: Use image node_id 4 for calling a global function with example usage: residual_block_v2(x, filters, kernel_size, stride, conv_shortcut, name) and returns: x