code: def __init__(
      self,
      embedding_size: int,
      num_heads: int,
      feed_forward_dim: int,
      dropout_rate=0.1,
  ) -> None:
      super(DecoderLayer, self).__init__()
      self.mha1 = MultiHeadAttention(embedding_size, num_heads)
      self.mha2 = MultiHeadAttention(embedding_size, num_heads)
      self.ffn = point_wise_feed_forward_network(
          embedding_size, feed_forward_dim
      )
      self.layernorm1 = tf.keras.layers.LayerNormalization(epsilon=1e-6)
      self.layernorm2 = tf.keras.layers.LayerNormalization(epsilon=1e-6)
      self.layernorm3 = tf.keras.layers.LayerNormalization(epsilon=1e-6)
      self.dropout1 = tf.keras.layers.Dropout(dropout_rate)
      self.dropout2 = tf.keras.layers.Dropout(dropout_rate)
      self.dropout3 = tf.keras.layers.Dropout(dropout_rate)
  
imports: import numpy
  import tensorflow
label_desc: Use image node_id 1 to create a new DecoderLayer object from inherited base classes: tf.keras.layers with example: obj = DecoderLayer(embedding_size, num_heads, feed_forward_dim, dropout_rate)