code: def forward(self, x: paddle.Tensor) -> paddle.Tensor:
      residual = x
      conv1 = self.conv1(x)
      conv2 = self.conv2(conv1)
      conv3 = self.conv3(conv2)
  
      if self.downsample:
          residual = self.conv_down(x)
  
      if self.has_se:
          conv3 = self.se(conv3)
  
      y = conv3 + residual
      y = F.relu(y)
      return y
  
imports: import math
  from typing import Tuple
  import paddle
  import paddle.nn
  import paddle.nn.functional
  import ocrnet_hrnetw18_cityscapes.layers
label_desc: Use image node_id 2 for calling the BottleneckBlock obj's underlying member method code with example usage: obj.forward(x) and returns: y