code: def _separable_conv_block(
      ip, filters, kernel_size=(3, 3), strides=(1, 1), block_id=None
  ):
      """Adds 2 blocks of [relu-separable conv-batchnorm].
  
      Args:
          ip: Input tensor
          filters: Number of output filters per layer
          kernel_size: Kernel size of separable convolutions
          strides: Strided convolution for downsampling
          block_id: String block_id
  
      Returns:
          A Keras tensor
      """
      channel_dim = (
          1 if backend.image_data_format() == "channels_first" else -1
      )
  
      with backend.name_scope(f"separable_conv_block_{block_id}"):
          x = layers.Activation("relu")(ip)
          if strides == (2, 2):
              x = layers.ZeroPadding2D(
                  padding=imagenet_utils.correct_pad(x, kernel_size),
                  name=f"separable_conv_1_pad_{block_id}",
              )(x)
              conv_pad = "valid"
          else:
              conv_pad = "same"
          x = layers.SeparableConv2D(
              filters,
              kernel_size,
              strides=strides,
              name=f"separable_conv_1_{block_id}",
              padding=conv_pad,
              use_bias=False,
          )(x)
          x = layers.BatchNormalization(
              axis=channel_dim,
              momentum=0.9997,
              epsilon=1e-3,
              name=f"separable_conv_1_bn_{block_id}",
          )(x)
          x = layers.Activation("relu")(x)
          x = layers.SeparableConv2D(
              filters,
              kernel_size,
              name=f"separable_conv_2_{block_id}",
              padding="same",
              use_bias=False,
          )(x)
          x = layers.BatchNormalization(
              axis=channel_dim,
              momentum=0.9997,
              epsilon=1e-3,
              name=f"separable_conv_2_bn_{block_id}",
          )(x)
      return x
  
file_path: keras/keras/applications/nasnet.py
imports: import warnings
  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: _separable_conv_block(ip, filters, kernel_size, strides, block_id) and returns: x