class_docstr: Implements the decoder in PETR transformer.
  
  Args:
      return_intermediate (bool): Whether to return intermediate outputs.
      coder_norm_cfg (dict): Config of last normalization layer. Default：
          `LN`.
class_docstr_tok: ["Implements","the","decoder","in","PETR","transformer",".","Args",":","return_intermediate","(","bool",")",":","Whether","to","return","intermediate","outputs",".","coder_norm_cfg","(","dict",")",":","Config","of","last","normalization","layer",".","Default\uff1a","`","LN","`","."]
code: def __init__(
      self,
      decoder_layer,
      num_layers,
      norm=None,
      return_intermediate=False,
      num_keypoints=17,
      **kwargs,
  ):
      super(PETR_TransformerDecoder, self).__init__()
      self.layers = _get_clones(decoder_layer, num_layers)
      self.num_layers = num_layers
      self.norm = norm
      self.return_intermediate = return_intermediate
      self.num_keypoints = num_keypoints
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import math
  import numpy
  import paddle
  import paddle.nn
  import paddle.nn.functional
  from paddle import ParamAttr
  from ppdet.core.workspace import register
  from ..layers import MultiHeadAttention, _convert_attention_mask
  from .utils import _get_clones
  from ..initializer import linear_init_, normal_, constant_, xavier_uniform_
label_desc: Use image node_id 1 to create a new PETR_TransformerDecoder object from inherited base classes: nn with example: obj = PETR_TransformerDecoder(decoder_layer, num_layers, norm, return_intermediate, num_keypoints)