code: def __init__(
      self, hidden_dim, decoder_layer, num_layers, eval_idx=-1
  ):
      super(TransformerDecoder, self).__init__()
      self.layers = _get_clones(decoder_layer, num_layers)
      self.hidden_dim = hidden_dim
      self.num_layers = num_layers
      self.eval_idx = (
          eval_idx if eval_idx >= 0 else num_layers + eval_idx
      )
  
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 paddle import ParamAttr
  from paddle.regularizer import L2Decay
  from ppdet.core.workspace import register
  from ..layers import MultiHeadAttention
  from ..heads.detr_head import MLP
  from .deformable_transformer import MSDeformableAttention
  from ..initializer import linear_init_, constant_, xavier_uniform_, normal_, bias_init_with_prob
  from .utils import _get_clones, get_sine_pos_embed, get_contrastive_denoising_training_group, inverse_sigmoid
label_desc: Use image node_id 1 to create a new TransformerDecoder object from inherited base classes: nn with example: obj = TransformerDecoder(hidden_dim, decoder_layer, num_layers, eval_idx)