code: def __init__(
      self,
      in_channels,
      channels,
      t,
      stride,
      use_se=True,
      se_ratio=12,
      **kwargs,
  ):
      super(LinearBottleneck, self).__init__(**kwargs)
      self.use_shortcut = stride == 1 and in_channels <= channels
      self.in_channels = in_channels
      self.out_channels = channels
  
      out = []
      if t != 1:
          dw_channels = in_channels * t
          conv_bn_swish(
              out, in_channels=in_channels, channels=dw_channels
          )
      else:
          dw_channels = in_channels
  
      conv_bn_act(
          out,
          in_channels=dw_channels,
          channels=dw_channels,
          kernel=3,
          stride=stride,
          pad=1,
          num_group=dw_channels,
          active=False,
      )
  
      if use_se:
          out.append(SE(dw_channels, dw_channels, se_ratio))
  
      out.append(nn.ReLU6())
      conv_bn_act(
          out,
          in_channels=dw_channels,
          channels=channels,
          active=False,
          relu6=True,
      )
      self.out = nn.Sequential(*out)
  
imports: import os
  from math import ceil
  from typing import Union
  import paddle
  import paddle.nn
  import numpy
  import paddlehub.vision.transforms
  from paddle import ParamAttr
  from paddlehub.module.module import moduleinfo
  from paddlehub.module.cv_module import ImageClassifierModule
label_desc: Use image node_id 1 to create a new LinearBottleneck object from inherited base classes: nn with example: obj = LinearBottleneck(in_channels, channels, t, stride, use_se, se_ratio)