code: def __init__(
      self,
      in_channels,
      out_channels,
      shortcut=True,
      expansion=0.5,
      depthwise=False,
      bias=False,
      act="silu",
  ):
      super(BottleNeck, self).__init__()
      hidden_channels = int(out_channels * expansion)
      Conv = DWConv if depthwise else BaseConv
      self.conv1 = BaseConv(
          in_channels,
          hidden_channels,
          ksize=1,
          stride=1,
          bias=bias,
          act=act,
      )
      self.conv2 = Conv(
          hidden_channels,
          out_channels,
          ksize=3,
          stride=1,
          bias=bias,
          act=act,
      )
      self.add_shortcut = shortcut and in_channels == out_channels
  
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 ppdet.modeling.initializer import conv_init_
  from ..shape_spec import ShapeSpec
label_desc: Use image node_id 1 to create a new BottleNeck object from inherited base classes: nn with example: obj = BottleNeck(in_channels, out_channels, shortcut, expansion, depthwise, bias, act)