code: def forward(self, inputs):
      out = self.branch2a(inputs)
      feature_split = paddle.split(out, self.scales, 1)
      out_split = []
      for i in range(self.scales - 1):
          if i == 0 or self.stride == 2:
              out_split.append(self.branch2b[i](feature_split[i]))
          else:
              out_split.append(
                  self.branch2b[i](
                      paddle.add(feature_split[i], out_split[-1])
                  )
              )
      if self.stride == 1:
          out_split.append(feature_split[-1])
      else:
          out_split.append(
              F.avg_pool2d(feature_split[-1], 3, self.stride, 1)
          )
      out = self.branch2c(paddle.concat(out_split, 1))
  
      if self.shortcut:
          short = inputs
      else:
          short = self.branch1(inputs)
  
      out = paddle.add(out, short)
      out = F.relu(out)
  
      return out
  
imports: from numbers import Integral
  import paddle
  import paddle.nn
  import paddle.nn.functional
  from ppdet.core.workspace import register, serializable
  from ..shape_spec import ShapeSpec
  from .resnet import ConvNormLayer
label_desc: Use image node_id 2 for calling the BottleNeck obj's underlying member method code with example usage: obj.forward(inputs) and returns: out