code: def forward(self, inputs):
      x = self.ghost_module_1(inputs)
      if self._stride == 2:
          x = self.depthwise_conv(x)
      if self._use_se:
          x = self.se_block(x)
      x = self.ghost_module_2(x)
      if (
          self._stride == 1
          and self._num_channels == self._output_channels
      ):
          shortcut = inputs
      else:
          shortcut = self.shortcut_depthwise(inputs)
          shortcut = self.shortcut_conv(shortcut)
      return paddle.add(x=x, y=shortcut)
  
imports: import math
  import paddle
  from paddle import ParamAttr
  import paddle.nn
  import paddle.nn.functional
  from paddle.nn import Conv2D, BatchNorm, AdaptiveAvgPool2D, Linear
  from paddle.regularizer import L2Decay
  from paddle.nn.initializer import Uniform, KaimingNormal
  from paddleseg.cvlibs import manager
  from paddleseg.utils import utils, logger
label_desc: Use image node_id 2 for calling the GhostBottleneck obj's underlying member method code with example usage: obj.forward(inputs) and returns: paddle