code: def __init__(self, num_classes, pretrained=True, **kwargs):
      super(SegNet, self).__init__()
      vgg = models.vgg19_bn()
      if pretrained:
          vgg.load_state_dict(torch.load(vgg19_bn_path))
      features = list(vgg.features.children())
      self.enc1 = nn.Sequential(*features[0:7])
      self.enc2 = nn.Sequential(*features[7:14])
      self.enc3 = nn.Sequential(*features[14:27])
      self.enc4 = nn.Sequential(*features[27:40])
      self.enc5 = nn.Sequential(*features[40:])
  
      self.dec5 = nn.Sequential(
          *(
              [nn.ConvTranspose2d(512, 512, kernel_size=2, stride=2)]
              + [
                  nn.Conv2d(512, 512, kernel_size=3, padding=1),
                  nn.BatchNorm2d(512),
                  nn.ReLU(inplace=True),
              ]
              * 4
          )
      )
      self.dec4 = _DecoderBlock(1024, 256, 4)
      self.dec3 = _DecoderBlock(512, 128, 4)
      self.dec2 = _DecoderBlock(256, 64, 2)
      self.dec1 = _DecoderBlock(128, num_classes, 2)
      initialize_weights(
          self.dec5, self.dec4, self.dec3, self.dec2, self.dec1
      )
  
file_path: pywick/pywick/models/segmentation/seg_net.py
imports: import torch
  from torch import nn
  from torchvision import models
  from .fcn_utils import initialize_weights
  from .config import vgg19_bn_path
label_desc: Use image node_id 1 to create a new SegNet object from inherited base classes: nn with example: obj = SegNet(num_classes, pretrained)