code: def forward(self, inputs: paddle.Tensor) -> paddle.Tensor:
      y = self.conv0(inputs)
      conv1 = self.conv1(y)
      conv2 = self.conv2(conv1)
  
      if self.shortcut:
          short = inputs
      else:
          short = self.short(inputs)
  
      y = self.add(short, conv2)
      y = self.relu(y)
      return y
  
file_path: PaddleHub/modules/image/semantic_segmentation/danet_resnet50_cityscapes/resnet.py
imports: from typing import Union, List, Tuple
  import paddle.nn
  import ann_resnet50_voc.layers
label_desc: Use image node_id 2 for calling the BottleneckBlock obj's underlying member method code with example usage: obj.forward(inputs) and returns: y