class_docstr: The BiSeNetV1 implementation based on PaddlePaddle.
  
  The original article refers to
  Yu, Changqian, et al. "BiSeNet V2: Bilateral Network with Guided Aggregation for Real-time Semantic Segmentation"
  (https://paperswithcode.com/paper/bisenet-bilateral-segmentation-network-for)
  
  Args:
      num_classes (int): The unique number of target classes.
      backbone (paddle.nn.Layer): Backbone network, currently support Resnet18_vd/Resnet34_vd/Resnet50_vd/Resnet101_vd.
      pretrained (str, optional): The path or url of pretrained model. Default: None.
class_docstr_tok: ["The","BiSeNetV1","implementation","based","on","PaddlePaddle",".","The","original","article","refers","to","Yu",",","Changqian",",","et","al",".","``","BiSeNet","V2",":","Bilateral","Network","with","Guided","Aggregation","for","Real-time","Semantic","Segmentation","''","(","https",":","\/\/paperswithcode.com\/paper\/bisenet-bilateral-segmentation-network-for",")","Args",":","num_classes","(","int",")",":","The","unique","number","of","target","classes",".","backbone","(","paddle.nn.Layer",")",":","Backbone","network",",","currently","support","Resnet18_vd\/Resnet34_vd\/Resnet50_vd\/Resnet101_vd",".","pretrained","(","str",",","optional",")",":","The","path","or","url","of","pretrained","model",".","Default",":","None","."]
code: def __init__(
      self, num_classes, backbone, conv_channel=128, pretrained=None
  ):
      super().__init__()
      self.backbone = backbone
      self.spatial_path = SpatialPath(3, 128)
      self.global_context = nn.Sequential(
          nn.AdaptiveAvgPool2D(1),
          layers.ConvBNReLU(512, conv_channel, 1, bias_attr=False),
      )
  
      self.arms = nn.LayerList(
          [
              AttentionRefinement(512, conv_channel),
              AttentionRefinement(256, conv_channel),
          ]
      )
      self.refines = nn.LayerList(
          [
              layers.ConvBNReLU(
                  conv_channel,
                  conv_channel,
                  3,
                  stride=1,
                  padding=1,
                  bias_attr=False,
              ),
              layers.ConvBNReLU(
                  conv_channel,
                  conv_channel,
                  3,
                  stride=1,
                  padding=1,
                  bias_attr=False,
              ),
          ]
      )
  
      self.heads = nn.LayerList(
          [
              BiSeNetHead(conv_channel, num_classes, 8, True),
              BiSeNetHead(conv_channel, num_classes, 8, True),
              BiSeNetHead(conv_channel * 2, num_classes, 8, False),
          ]
      )
  
      self.ffm = FeatureFusion(conv_channel * 2, conv_channel * 2, 1)
  
      self.pretrained = pretrained
  
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 BiseNetV1 object from inherited base classes: nn with example: obj = BiseNetV1(num_classes, backbone, conv_channel, pretrained)