class_docstr: Encoder layer of Deformable DETR.
docstr: Initialize self_attn, ffn, and norms.
docstr_tok: ["Initialize","self_attn",",","ffn",",","and","norms","."]
code: def _init_layers(self) -> None:
      """Initialize self_attn, ffn, and norms."""
      self.self_attn = MultiScaleDeformableAttention(
          **self.self_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(2)
      ]
      self.norms = ModuleList(norms_list)
  
imports: from typing import Optional, Tuple, Union
  import torch
  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, nn
  from .detr_layers import DetrTransformerDecoder, DetrTransformerDecoderLayer, DetrTransformerEncoder, DetrTransformerEncoderLayer
  from .utils import inverse_sigmoid
label_desc: Use image node_id 1 for calling the DeformableDetrTransformerEncoderLayer obj's underlying member method code with example usage: obj._init_layers() without return types