class_docstr: Detection block in YOLO neck.
  
  Let out_channels = n, the DetectionBlock contains:
  Six ConvLayers, 1 Conv2D Layer and 1 YoloLayer.
  The first 6 ConvLayers are formed the following way:
      1x1xn, 3x3x2n, 1x1xn, 3x3x2n, 1x1xn, 3x3x2n.
  The Conv2D layer is 1x1x255.
  Some block will have branch after the fifth ConvLayer.
  The input channel is arbitrary (in_channels)
  
  Args:
      in_channels (int): The number of input channels.
      out_channels (int): The number of output channels.
      conv_cfg (dict): Config dict for convolution layer. Default: None.
      norm_cfg (dict): Dictionary to construct and config norm layer.
          Default: dict(type='BN', requires_grad=True)
      act_cfg (dict): Config dict for activation layer.
          Default: dict(type='LeakyReLU', negative_slope=0.1).
      init_cfg (dict or list[dict], optional): Initialization config dict.
          Default: None
code: def __init__(
      self,
      in_channels: int,
      out_channels: int,
      conv_cfg: OptConfigType = None,
      norm_cfg: ConfigType = dict(type="BN", requires_grad=True),
      act_cfg: ConfigType = dict(type="LeakyReLU", negative_slope=0.1),
      init_cfg: OptMultiConfig = None,
  ) -> None:
      super(DetectionBlock, self).__init__(init_cfg)
      double_out_channels = out_channels * 2
  
      # shortcut
      cfg = dict(conv_cfg=conv_cfg, norm_cfg=norm_cfg, act_cfg=act_cfg)
      self.conv1 = ConvModule(in_channels, out_channels, 1, **cfg)
      self.conv2 = ConvModule(
          out_channels, double_out_channels, 3, padding=1, **cfg
      )
      self.conv3 = ConvModule(
          double_out_channels, out_channels, 1, **cfg
      )
      self.conv4 = ConvModule(
          out_channels, double_out_channels, 3, padding=1, **cfg
      )
      self.conv5 = ConvModule(
          double_out_channels, out_channels, 1, **cfg
      )
  
file_path: mmdetection/mmdet/models/necks/yolo_neck.py
imports: from typing import List, Tuple
  import torch
  import torch.nn.functional
  from mmcv.cnn import ConvModule
  from mmengine.model import BaseModule
  from torch import Tensor
  from mmdet.registry import MODELS
  from mmdet.utils import ConfigType, OptConfigType, OptMultiConfig
label_desc: Use image node_id 1 to create a new DetectionBlock object from inherited base classes: BaseModule with example: obj = DetectionBlock(in_channels, out_channels, conv_cfg, norm_cfg, act_cfg, init_cfg)