code: def __init__(
      self,
      in_channels,
      mid_channels,
      out_channels,
      kernel_size=5,
      stride=1,
      act="leaky_relu",
  ):
      super(ES_Block, self).__init__()
      self._residual = ConvBNLayer(
          in_channel=in_channels,
          out_channel=out_channels,
          kernel_size=1,
          stride=1,
          groups=1,
          act=act,
      )
      self._conv_pw = ConvBNLayer(
          in_channel=in_channels,
          out_channel=mid_channels // 2,
          kernel_size=1,
          stride=1,
          groups=1,
          act=act,
      )
      self._conv_dw = ConvBNLayer(
          in_channel=mid_channels // 2,
          out_channel=mid_channels // 2,
          kernel_size=kernel_size,
          stride=stride,
          groups=mid_channels // 2,
          act=None,
      )
      self._se = SEModule(mid_channels)
  
      self._conv_linear = ConvBNLayer(
          in_channel=mid_channels,
          out_channel=out_channels,
          kernel_size=1,
          stride=1,
          groups=1,
          act=act,
      )
  
      self._out_conv = ConvBNLayer(
          in_channel=out_channels * 2,
          out_channel=out_channels,
          kernel_size=1,
          stride=1,
          groups=1,
          act=act,
      )
  
file_path: PaddleDetection/ppdet/modeling/necks/es_pan.py
imports: import paddle
  import paddle.nn
  import paddle.nn.functional
  from paddle import ParamAttr
  from paddle.regularizer import L2Decay
  from ppdet.core.workspace import register, serializable
  from ..shape_spec import ShapeSpec
  from ..backbones.esnet import SEModule
  from .csp_pan import ConvBNLayer, Channel_T, DPModule
label_desc: Use image node_id 1 to create a new ES_Block object from inherited base classes: nn with example: obj = ES_Block(in_channels, mid_channels, out_channels, kernel_size, stride, act)