code: def __init__(self, inp, oup, kernel, stride, exp, se=False, nl="RE"):
      super(MobileBottleneck, self).__init__()
      assert stride in [1, 2]
      assert kernel in [3, 5]
      padding = (kernel - 1) // 2
      self.use_res_connect = stride == 1 and inp == oup
  
      conv_layer = nn.Conv2d
      norm_layer = nn.BatchNorm2d
      if nl == "RE":
          nlin_layer = nn.ReLU  # or ReLU6
      elif nl == "HS":
          nlin_layer = Hswish
      else:
          raise NotImplementedError
      if se:
          SELayer = SEModule
      else:
          SELayer = Identity
  
      self.conv = nn.Sequential(
          # pw
          conv_layer(inp, exp, 1, 1, 0, bias=False),
          norm_layer(exp),
          nlin_layer(inplace=True),
          # dw
          conv_layer(
              exp, exp, kernel, stride, padding, groups=exp, bias=False
          ),
          norm_layer(exp),
          SELayer(exp),
          nlin_layer(inplace=True),
          # pw-linear
          conv_layer(exp, oup, 1, 1, 0, bias=False),
          norm_layer(oup),
      )
  
imports: import torch
  import torch.nn
  import torch.nn.functional
label_desc: Use image node_id 1 to create a new MobileBottleneck object from inherited base classes: nn with example: obj = MobileBottleneck(inp, oup, kernel, stride, exp, se, nl)