code: def call(
      self, x, enc_output, training, look_ahead_mask, padding_mask
  ):
      seq_len = tf.shape(x)[1]
      attention_weights = {}
  
      x = self.embedding(x)
      x *= tf.math.sqrt(tf.cast(self.embedding_size, tf.float32))
      x += self.pos_encoding[:, :seq_len, :]
      x = self.dropout(x, training=training)
  
      for i in range(self.num_layers):
          x, block1, block2 = self.dec_layers[i](
              x, enc_output, training, look_ahead_mask, padding_mask
          )
          attention_weights[
              "decoder_layer{}_block1".format(i + 1)
          ] = block1
          attention_weights[
              "decoder_layer{}_block2".format(i + 1)
          ] = block2
  
      return x, attention_weights
  
file_path: headliner/headliner/model/transformer_model.py
imports: from typing import Tuple
  from headliner.model.transformer_util import *
label_desc: Use image node_id 2 for calling the Decoder obj's underlying member method code with example usage: obj.call(x, enc_output, training, look_ahead_mask, padding_mask) and returns: x,  attention_weights