code: def __init__(
      self,
      filters=128,
      filter_size=(5, 3),
      filter_strides=(1, 1),
      pool_size=(4, 4),
      drop_rate=0.1,
  ):
      super().__init__(name="cbdp")
      self.filters = filters
      self.filter_size = filter_size
      self.filter_strides = filter_strides
      self.pool_size = pool_size
      self.drop_rate = drop_rate
  
      self.conv = tf.keras.layers.Conv2D(
          filters,
          filter_size,
          strides=filter_strides,
          kernel_initializer="glorot_normal",
          use_bias=True,
          padding="same",
      )
      self.bn = tf.keras.layers.BatchNormalization()
      self.drop = tf.keras.layers.Dropout(self.drop_rate)
      self.pool = tf.keras.layers.MaxPool2D(
          pool_size=self.pool_size,
          strides=self.pool_size,
          padding="same",
          data_format="channels_last",
      )
  
imports: import numpy
  from absl import logging
  import delta.compat
  from tensorflow.python.keras import backend
  from delta.models.base_model import Model
  from delta.layers.base_layer import Layer
  from delta import utils
  from delta.utils.register import registers
label_desc: Use image node_id 1 to create a new CBDP object from inherited base classes: Layer with example: obj = CBDP(filters, filter_size, filter_strides, pool_size, drop_rate)