class_docstr: The ANN implementation based on PaddlePaddle.
  
  The original article refers to
  Zhen, Zhu, et al. "Asymmetric Non-local Neural Networks for Semantic Segmentation"
  (https://arxiv.org/pdf/1908.07678.pdf).
  
  Args:
      num_classes (int): The unique number of target classes.
      backbone (Paddle.nn.Layer): Backbone network, currently support Resnet50/101.
      backbone_indices (tuple, optional): Two values in the tuple indicate the indices of output of backbone.
      key_value_channels (int, optional): The key and value channels of self-attention map in both AFNB and APNB modules.
          Default: 256.
      inter_channels (int, optional): Both input and output channels of APNB modules. Default: 512.
      psp_size (tuple, optional): The out size of pooled feature maps. Default: (1, 3, 6, 8).
      enable_auxiliary_loss (bool, optional): A bool value indicates whether adding auxiliary loss. Default: True.
      align_corners (bool, optional): An argument of F.interpolate. It should be set to False when the feature size is even,
          e.g. 1024x512, otherwise it is True, e.g. 769x769. Default: False.
      pretrained (str, optional): The path or url of pretrained model. Default: None.
code: def __init__(
      self,
      num_classes,
      backbone,
      backbone_indices=(2, 3),
      key_value_channels=256,
      inter_channels=512,
      psp_size=(1, 3, 6, 8),
      enable_auxiliary_loss=True,
      align_corners=False,
      pretrained=None,
  ):
      super().__init__()
  
      self.backbone = backbone
      backbone_channels = [
          backbone.feat_channels[i] for i in backbone_indices
      ]
  
      self.head = ANNHead(
          num_classes,
          backbone_indices,
          backbone_channels,
          key_value_channels,
          inter_channels,
          psp_size,
          enable_auxiliary_loss,
      )
      self.align_corners = align_corners
      self.pretrained = pretrained
      self.init_weight()
  
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 ANN object from inherited base classes: nn with example: obj = ANN(num_classes, backbone, backbone_indices, key_value_channels, inter_channels, psp_size, enable_auxiliary_loss, align_corners, pretrained)