class_docstr: Implements decoder layer in DAB-DETR transformer.
docstr: Initialize self-attention, cross-attention, FFN, normalization and
  others.
docstr_tok: ["Initialize","self-attention",",","cross-attention",",","FFN",",","normalization","and","others","."]
code: def _init_layers(self):
      """Initialize self-attention, cross-attention, FFN, normalization and
      others."""
      self.self_attn = ConditionalAttention(**self.self_attn_cfg)
      self.cross_attn = ConditionalAttention(**self.cross_attn_cfg)
      self.embed_dims = self.self_attn.embed_dims
      self.ffn = FFN(**self.ffn_cfg)
      norms_list = [
          build_norm_layer(self.norm_cfg, self.embed_dims)[1]
          for _ in range(3)
      ]
      self.norms = ModuleList(norms_list)
      self.keep_query_pos = self.cross_attn.keep_query_pos
  
imports: from typing import List
  import torch
  import torch.nn
  from mmcv.cnn import build_norm_layer
  from mmcv.cnn.bricks.transformer import FFN
  from mmengine.model import ModuleList
  from torch import Tensor
  from .detr_layers import DetrTransformerDecoder, DetrTransformerDecoderLayer, DetrTransformerEncoder, DetrTransformerEncoderLayer
  from .utils import MLP, ConditionalAttention, coordinate_to_encoding, inverse_sigmoid
label_desc: Use image node_id 1 for calling the DABDetrTransformerDecoderLayer obj's underlying member method code with example usage: obj._init_layers() without return types