docstr: L2 normalization layer.
  
  Args:
      n_dims (int): Number of dimensions to be normalized
      scale (float, optional): Defaults to 20..
      eps (float, optional): Used to avoid division by zero.
          Defaults to 1e-10.
docstr_tok: ["L2","normalization","layer",".","Args",":","n_dims","(","int",")",":","Number","of","dimensions","to","be","normalized","scale","(","float",",","optional",")",":","Defaults","to","20","..","eps","(","float",",","optional",")",":","Used","to","avoid","division","by","zero",".","Defaults","to","1e-10","."]
code: def __init__(self, n_dims, scale=20.0, eps=1e-10):
      """L2 normalization layer.
  
      Args:
          n_dims (int): Number of dimensions to be normalized
          scale (float, optional): Defaults to 20..
          eps (float, optional): Used to avoid division by zero.
              Defaults to 1e-10.
      """
      super(L2Norm, self).__init__()
      self.n_dims = n_dims
      self.weight = nn.Parameter(torch.Tensor(self.n_dims))
      self.eps = eps
      self.scale = scale
  
file_path: mmdetection/mmdet/models/necks/ssd_neck.py
imports: import torch
  import torch.nn
  from mmcv.cnn import ConvModule, DepthwiseSeparableConvModule
  from mmengine.model import BaseModule
  from mmdet.registry import MODELS
label_desc: Use image node_id 1 to create a new L2Norm object from inherited base classes: nn with example: obj = L2Norm(n_dims, scale, eps)