class_docstr: The SegNet implementation based on PaddlePaddle.
  The original article refers to
  Badrinarayanan, Vijay, et al. "SegNet: A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation"
  (https://arxiv.org/pdf/1511.00561.pdf).
  Args:
      num_classes (int): The unique number of target classes.
class_docstr_tok: ["The","SegNet","implementation","based","on","PaddlePaddle",".","The","original","article","refers","to","Badrinarayanan",",","Vijay",",","et","al",".","``","SegNet",":","A","Deep","Convolutional","Encoder-Decoder","Architecture","for","Image","Segmentation","''","(","https",":","\/\/arxiv.org\/pdf\/1511.00561.pdf",")",".","Args",":","num_classes","(","int",")",":","The","unique","number","of","target","classes","."]
code: def __init__(self, num_classes, in_channels=3, pretrained=None):
      super().__init__()
  
      # Encoder Module
  
      self.enco1 = nn.Sequential(
          layers.ConvBNReLU(in_channels, 64, 3, padding=1),
          layers.ConvBNReLU(64, 64, 3, padding=1),
      )
  
      self.enco2 = nn.Sequential(
          layers.ConvBNReLU(64, 128, 3, padding=1),
          layers.ConvBNReLU(128, 128, 3, padding=1),
      )
  
      self.enco3 = nn.Sequential(
          layers.ConvBNReLU(128, 256, 3, padding=1),
          layers.ConvBNReLU(256, 256, 3, padding=1),
          layers.ConvBNReLU(256, 256, 3, padding=1),
      )
  
      self.enco4 = nn.Sequential(
          layers.ConvBNReLU(256, 512, 3, padding=1),
          layers.ConvBNReLU(512, 512, 3, padding=1),
          layers.ConvBNReLU(512, 512, 3, padding=1),
      )
  
      self.enco5 = nn.Sequential(
          layers.ConvBNReLU(512, 512, 3, padding=1),
          layers.ConvBNReLU(512, 512, 3, padding=1),
          layers.ConvBNReLU(512, 512, 3, padding=1),
      )
  
      # Decoder Module
  
      self.deco1 = nn.Sequential(
          layers.ConvBNReLU(512, 512, 3, padding=1),
          layers.ConvBNReLU(512, 512, 3, padding=1),
          layers.ConvBNReLU(512, 512, 3, padding=1),
      )
  
      self.deco2 = nn.Sequential(
          layers.ConvBNReLU(512, 512, 3, padding=1),
          layers.ConvBNReLU(512, 512, 3, padding=1),
          layers.ConvBNReLU(512, 256, 3, padding=1),
      )
  
      self.deco3 = nn.Sequential(
          layers.ConvBNReLU(256, 256, 3, padding=1),
          layers.ConvBNReLU(256, 256, 3, padding=1),
          layers.ConvBNReLU(256, 128, 3, padding=1),
      )
  
      self.deco4 = nn.Sequential(
          layers.ConvBNReLU(128, 128, 3, padding=1),
          layers.ConvBNReLU(128, 128, 3, padding=1),
          layers.ConvBNReLU(128, 64, 3, padding=1),
      )
  
      self.deco5 = nn.Sequential(
          layers.ConvBNReLU(64, 64, 3, padding=1),
          nn.Conv2D(64, num_classes, kernel_size=3, padding=1),
      )
  
      self.pretrained = pretrained
  
      self.init_weight()
  
file_path: PaddleSeg/paddleseg/models/segnet.py
imports: import paddle
  import paddle.nn
  import paddle.nn.functional
  from paddleseg.cvlibs import manager, param_init
  from paddleseg.models import layers
  from paddleseg.utils import utils
label_desc: Use image node_id 1 to create a new SegNet object from inherited base classes: nn with example: obj = SegNet(num_classes, in_channels, pretrained)