code: def __init__(
      self,
      num_classes,
      pretrained=True,
      backbone="resnet18",
      aux=False,
      **kwargs,
  ):
      super(BiSeNet, self).__init__()
      self.aux = aux
      self.spatial_path = SpatialPath(3, 128, **kwargs)
      self.context_path = ContextPath(
          backbone=backbone, pretrained=pretrained, **kwargs
      )
      self.ffm = FeatureFusion(256, 256, 4, **kwargs)
      self.head = _BiSeHead(256, 64, num_classes, **kwargs)
      if aux:
          self.auxlayer1 = _BiSeHead(128, 256, num_classes, **kwargs)
          self.auxlayer2 = _BiSeHead(128, 256, num_classes, **kwargs)
  
      self.__setattr__(
          "exclusive",
          [
              "spatial_path",
              "context_path",
              "ffm",
              "head",
              "auxlayer1",
              "auxlayer2",
          ]
          if aux
          else ["spatial_path", "context_path", "ffm", "head"],
      )
  
imports: import torch
  import torch.nn
  import torch.nn.functional
  from pywick.models.segmentation.da_basenets.resnet import resnet18
label_desc: Use image node_id 1 to create a new BiSeNet object from inherited base classes: nn with example: obj = BiSeNet(num_classes, pretrained, backbone, aux)