code: def __init__(
      self, in_channels, mid_channels, out_channels, stride, act="relu"
  ):
      super(InvertedResidual, self).__init__()
      self._conv_pw = ConvBNLayer(
          in_channels=in_channels // 2,
          out_channels=mid_channels // 2,
          kernel_size=1,
          stride=1,
          padding=0,
          groups=1,
          act=act,
      )
      self._conv_dw = ConvBNLayer(
          in_channels=mid_channels // 2,
          out_channels=mid_channels // 2,
          kernel_size=3,
          stride=stride,
          padding=1,
          groups=mid_channels // 2,
          act=None,
      )
      self._se = SEModule(mid_channels)
  
      self._conv_linear = ConvBNLayer(
          in_channels=mid_channels,
          out_channels=out_channels // 2,
          kernel_size=1,
          stride=1,
          padding=0,
          groups=1,
          act=act,
      )
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import paddle
  import paddle.nn
  import paddle.nn.functional
  from paddle import ParamAttr
  from paddle.nn import Conv2D, MaxPool2D, AdaptiveAvgPool2D, BatchNorm
  from paddle.nn.initializer import KaimingNormal
  from paddle.regularizer import L2Decay
  from ppdet.core.workspace import register, serializable
  from numbers import Integral
  from ..shape_spec import ShapeSpec
  from ppdet.modeling.ops import channel_shuffle
  from ppdet.modeling.backbones.shufflenet_v2 import ConvBNLayer
label_desc: Use image node_id 1 to create a new InvertedResidual object from inherited base classes: nn with example: obj = InvertedResidual(in_channels, mid_channels, out_channels, stride, act)