docstr: Decoder layer of Deformable DETR.
docstr_tok: ["Decoder","layer","of","Deformable","DETR","."]
code: def __init__(
      self,
      cross_attn_text_cfg: OptConfigType = dict(
          embed_dims=256, num_heads=8, dropout=0.0, batch_first=True
      ),
      **kwargs,
  ) -> None:
      """Decoder layer of Deformable DETR."""
      self.cross_attn_text_cfg = cross_attn_text_cfg
      if "batch_first" not in self.cross_attn_text_cfg:
          self.cross_attn_text_cfg["batch_first"] = True
      super().__init__(**kwargs)
  
imports: import torch
  import torch.nn
  from mmcv.cnn import build_norm_layer
  from mmcv.cnn.bricks.transformer import FFN, MultiheadAttention
  from mmcv.ops import MultiScaleDeformableAttention
  from mmengine.model import ModuleList
  from torch import Tensor
  from mmdet.models.utils.vlfuse_helper import SingleScaleBiAttentionBlock
  from mmdet.utils import ConfigType, OptConfigType
  from .deformable_detr_layers import DeformableDetrTransformerDecoderLayer, DeformableDetrTransformerEncoder, DeformableDetrTransformerEncoderLayer
  from .detr_layers import DetrTransformerEncoderLayer
  from .dino_layers import DinoTransformerDecoder
  from .utils import MLP, get_text_sine_pos_embed
label_desc: Use image node_id 1 to create a new GroundingDinoTransformerDecoderLayer object from inherited base classes: DeformableDetrTransformerDecoderLayer with example: obj = GroundingDinoTransformerDecoderLayer(cross_attn_text_cfg)