class_docstr: Spatial pyramid pooling layer used in YOLOv3-SPP.
  
  Args:
      in_channels (int): The input channels of this Module.
      out_channels (int): The output channels of this Module.
      kernel_sizes (tuple[int]): Sequential of kernel sizes of pooling
          layers. Default: (5, 9, 13).
      conv_cfg (dict): Config dict for convolution layer. Default: None,
          which means using conv2d.
      norm_cfg (dict): Config dict for normalization layer.
          Default: dict(type='BN').
      act_cfg (dict): Config dict for activation layer.
          Default: dict(type='Swish').
      init_cfg (dict or list[dict], optional): Initialization config dict.
          Default: None.
code: def __init__(
      self,
      in_channels,
      out_channels,
      kernel_sizes=(5, 9, 13),
      conv_cfg=None,
      norm_cfg=dict(type="BN", momentum=0.03, eps=0.001),
      act_cfg=dict(type="Swish"),
      init_cfg=None,
  ):
      super().__init__(init_cfg)
      mid_channels = in_channels // 2
      self.conv1 = ConvModule(
          in_channels,
          mid_channels,
          1,
          stride=1,
          conv_cfg=conv_cfg,
          norm_cfg=norm_cfg,
          act_cfg=act_cfg,
      )
      self.poolings = nn.ModuleList(
          [
              nn.MaxPool2d(kernel_size=ks, stride=1, padding=ks // 2)
              for ks in kernel_sizes
          ]
      )
      conv2_channels = mid_channels * (len(kernel_sizes) + 1)
      self.conv2 = ConvModule(
          conv2_channels,
          out_channels,
          1,
          conv_cfg=conv_cfg,
          norm_cfg=norm_cfg,
          act_cfg=act_cfg,
      )
  
imports: import math
  import torch
  import torch.nn
  from mmcv.cnn import ConvModule, DepthwiseSeparableConvModule
  from mmengine.model import BaseModule
  from torch.nn.modules.batchnorm import _BatchNorm
  from mmdet.registry import MODELS
  from ..layers import CSPLayer
label_desc: Use image node_id 1 to create a new SPPBottleneck object from inherited base classes: BaseModule with example: obj = SPPBottleneck(in_channels, out_channels, kernel_sizes, conv_cfg, norm_cfg, act_cfg, init_cfg)