code: def __init__(self, num_classes, pretrained=True, k=7, input_size=512):
      super(GCN_PSP, self).__init__()
  
      self.K = k
      self.input_size = input_size
  
      resnet = models.resnet152(pretrained=pretrained)
  
      self.layer0 = nn.Sequential(resnet.conv1, resnet.bn1, resnet.relu)
      self.layer1 = nn.Sequential(resnet.maxpool, resnet.layer1)
      self.layer2 = resnet.layer2
      self.layer3 = resnet.layer3
      self.layer4 = resnet.layer4
  
      self.gcm1 = _GlobalConvModule(2048, num_classes, (self.K, self.K))
      self.gcm2 = _GlobalConvModule(1024, num_classes, (self.K, self.K))
      self.gcm3 = _GlobalConvModule(512, num_classes, (self.K, self.K))
      self.gcm4 = _GlobalConvModule(256, num_classes, (self.K, self.K))
  
      self.brm1 = _BoundaryRefineModule(num_classes)
      self.brm2 = _BoundaryRefineModule(num_classes)
      self.brm3 = _BoundaryRefineModule(num_classes)
      self.brm4 = _BoundaryRefineModule(num_classes)
      self.brm5 = _BoundaryRefineModule(num_classes)
      self.brm6 = _BoundaryRefineModule(num_classes)
      self.brm7 = _BoundaryRefineModule(num_classes)
      self.brm8 = _BoundaryRefineModule(num_classes)
      self.brm9 = _BoundaryRefineModule(num_classes)
  
      self.psp = _PyramidSpatialPoolingModule(
          num_classes, 10, input_size, levels=(1, 2, 3, 6, 8)
      )
      self.final = nn.Sequential(
          nn.Conv2d(
              num_classes + self.psp.out_channels,
              num_classes,
              kernel_size=3,
              padding=1,
              bias=False,
          ),
          nn.BatchNorm2d(num_classes),
          nn.ReLU(inplace=True),
          nn.Conv2d(num_classes, num_classes, kernel_size=1, padding=0),
      )
  
      initialize_weights(
          self.gcm1,
          self.gcm2,
          self.gcm3,
          self.gcm4,
          self.brm1,
          self.brm2,
          self.brm3,
          self.brm4,
          self.brm5,
          self.brm6,
          self.brm7,
          self.brm8,
          self.brm9,
          self.psp,
          self.final,
      )
  
imports: from math import floor
  import torch
  import torch.nn.functional
  from torch import nn
  from torchvision import models
label_desc: Use image node_id 1 to create a new GCN_PSP object from inherited base classes: nn with example: obj = GCN_PSP(num_classes, pretrained, k, input_size)