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 __init__(
      self,
      low_in_channels,
      high_in_channels,
      out_channels,
      key_channels,
      value_channels,
      dropout_prob,
      repeat_sizes=([1]),
      psp_size=(1, 3, 6, 8),
  ):
      super().__init__()
  
      self.psp_size = psp_size
      self.stages = nn.LayerList(
          [
              SelfAttentionBlock_AFNB(
                  low_in_channels,
                  high_in_channels,
                  key_channels,
                  value_channels,
                  out_channels,
                  size,
              )
              for size in repeat_sizes
          ]
      )
      self.conv_bn = layers.ConvBN(
          in_channels=out_channels + high_in_channels,
          out_channels=out_channels,
          kernel_size=1,
      )
      self.dropout = nn.Dropout(p=dropout_prob)
  
imports: import paddle
  import paddle.nn
  import paddle.nn.functional
  from paddleseg.cvlibs import manager
  from paddleseg.models import layers
  from paddleseg.utils import utils
label_desc: Use image node_id 1 to create a new AFNB object from inherited base classes: nn with example: obj = AFNB(low_in_channels, high_in_channels, out_channels, key_channels, value_channels, dropout_prob, repeat_sizes, psp_size)