code: def forward(
      self,
      tgt,
      memory,
      tgt_mask=None,
      memory_mask=None,
      pos_embed=None,
      query_pos_embed=None,
  ):
      tgt_mask = _convert_attention_mask(tgt_mask, tgt.dtype)
  
      residual = tgt
      if self.normalize_before:
          tgt = self.norm1(tgt)
      q = k = self.with_pos_embed(tgt, query_pos_embed)
      tgt = self.self_attn(q, k, value=tgt, attn_mask=tgt_mask)
      tgt = residual + self.dropout1(tgt)
      if not self.normalize_before:
          tgt = self.norm1(tgt)
  
      residual = tgt
      if self.normalize_before:
          tgt = self.norm2(tgt)
      q = self.with_pos_embed(tgt, query_pos_embed)
      k = self.with_pos_embed(memory, pos_embed)
      tgt = self.cross_attn(q, k, value=memory, attn_mask=memory_mask)
      tgt = residual + self.dropout2(tgt)
      if not self.normalize_before:
          tgt = self.norm2(tgt)
  
      residual = tgt
      if self.normalize_before:
          tgt = self.norm3(tgt)
      tgt = self.linear2(
          self.dropout(self.activation(self.linear1(tgt)))
      )
      tgt = residual + self.dropout3(tgt)
      if not self.normalize_before:
          tgt = self.norm3(tgt)
      return tgt
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import paddle
  import paddle.nn
  import paddle.nn.functional
  from ppdet.core.workspace import register
  from ..layers import MultiHeadAttention, _convert_attention_mask
  from .position_encoding import PositionEmbedding
  from .utils import _get_clones
  from ..initializer import linear_init_, conv_init_, xavier_uniform_, normal_
label_desc: Use image node_id 4 for calling the TransformerDecoderLayer obj's underlying member method code with example usage: obj.forward(tgt, memory, tgt_mask, memory_mask, pos_embed, query_pos_embed) and returns: tgt