code: def forward(self, input):
      if self.stride == 1:
          shortcut, branch = paddle.split(
              x=input, num_or_sections=2, axis=1
          )
      else:
          branch = input
          shortcut = self._depthwise_separable_0(input)
  
      branch_1x1 = self._conv(branch)
      branch_dw1x1 = self._depthwise_separable_1(branch_1x1)
      output = paddle.concat(x=[shortcut, branch_dw1x1], axis=1)
  
      # channel shuffle
      out_shape = paddle.shape(output)
      h, w = out_shape[2], out_shape[3]
      output = paddle.reshape(
          x=output, shape=[0, 2, self.in_channels, h, w]
      )
      output = paddle.transpose(x=output, perm=[0, 2, 1, 3, 4])
      output = paddle.reshape(
          x=output, shape=[0, 2 * self.in_channels, h, w]
      )
      return output
  
imports: import paddle
  import paddle.nn
  import paddle.nn.functional
  from paddleseg.cvlibs import manager, param_init
  from paddleseg.models import layers
  from paddleseg.utils import utils
label_desc: Use image node_id 2 for calling the InvertedResidual obj's underlying member method code with example usage: obj.forward(input) and returns: output