class_docstr: Asymmetric Fusion Non-local Block.
  
  Args:
      low_in_channels (int): Low-level-feature channels.
      high_in_channels (int): High-level-feature channels.
      out_channels (int): Out channels of AFNB module.
      key_channels (int): The key channels in self-attention block.
      value_channels (int): The value channels in self-attention block.
      dropout_prob (float): The dropout rate of output.
      repeat_sizes (tuple, optional): The number of AFNB modules. Default: ([1]).
      psp_size (tuple. optional): The out size of pooled feature maps. Default: (1, 3, 6, 8).
code: def forward(
      self,
      low_feats: List[paddle.Tensor],
      high_feats: List[paddle.Tensor],
  ) -> paddle.Tensor:
      priors = [stage(low_feats, high_feats) for stage in self.stages]
      context = priors[0]
      for i in range(1, len(priors)):
          context += priors[i]
  
      output = self.conv_bn(
          paddle.concat([context, high_feats], axis=1)
      )
      output = self.dropout(output)
  
      return output
  
imports: import os
  from typing import Union, List, Tuple
  import numpy
  import paddle
  import paddle.nn
  import paddle.nn.functional
  from paddlehub.module.module import moduleinfo
  import paddlehub.vision.segmentation_transforms
  from paddlehub.module.cv_module import ImageSegmentationModule
  from ann_resnet50_cityscapes.resnet import ResNet50_vd
  import ann_resnet50_cityscapes.layers
label_desc: Use image node_id 2 for calling the AFNB obj's underlying member method code with example usage: obj.forward(low_feats, high_feats) and returns: output