code: def residual(
      x,
      num_filters,
      kernel_size=(3, 3),
      activation="relu",
      pool_strides=(2, 2),
      max_pooling=True,
  ):
      "Residual block."
      if max_pooling:
          res = layers.Conv2D(
              num_filters,
              kernel_size=(1, 1),
              strides=pool_strides,
              padding="same",
          )(x)
      elif num_filters != ops.shape(x)[-1]:
          res = layers.Conv2D(
              num_filters, kernel_size=(1, 1), padding="same"
          )(x)
      else:
          res = x
  
      x = sep_conv(x, num_filters, kernel_size, activation)
      x = sep_conv(x, num_filters, kernel_size, activation)
      if max_pooling:
          x = layers.MaxPooling2D(
              kernel_size, strides=pool_strides, padding="same"
          )(x)
  
      x = layers.add([x, res])
      return x
  
file_path: keras-tuner/keras_tuner/applications/xception.py
imports: from keras_tuner.api_export import keras_tuner_export
  from keras_tuner.backend import keras
  from keras_tuner.backend import ops
  from keras_tuner.backend.keras import layers
  from keras_tuner.engine import hypermodel
label_desc: Use image node_id 2 for calling a global function with example usage: residual(x, num_filters, kernel_size, activation, pool_strides, max_pooling) and returns: x