code: def __init__(self, num_classes, pretrained=True, **kwargs):
      super(ResnetGCN, self).__init__()
  
      resent = models.resnet101(pretrained=pretrained)
      self.layer0 = nn.Sequential(
          resent.conv1, resent.bn1, resent.relu, resent.maxpool
      )
      self.layer1 = resent.layer1
      self.layer2 = resent.layer2
      self.layer3 = resent.layer3
      self.layer4 = resent.layer4
  
      # Assuming input of size 240x320
      ks = 7
      self.gcn256 = GlobalConvolutionBlock(256, num_classes, (59, 79))
      self.br256 = BoundaryRefine(num_classes)
      self.gcn512 = GlobalConvolutionBlock(512, num_classes, (29, 39))
      self.br512 = BoundaryRefine(num_classes)
      self.gcn1024 = GlobalConvolutionBlock(1024, num_classes, (13, 19))
      self.br1024 = BoundaryRefine(num_classes)
      self.gcn2048 = GlobalConvolutionBlock(2048, num_classes, (7, 9))
      self.br2048 = BoundaryRefine(num_classes)
  
      self.br1 = BoundaryRefine(num_classes)
      self.br2 = BoundaryRefine(num_classes)
      self.br3 = BoundaryRefine(num_classes)
      self.br4 = BoundaryRefine(num_classes)
      self.br5 = BoundaryRefine(num_classes)
  
      self.activation = nn.Sigmoid()
  
      self.deconv1 = nn.ConvTranspose2d(1, 1, 2, stride=2)
      self.deconv2 = nn.ConvTranspose2d(1, 1, 2, stride=2)
  
      initialize_weights(
          self.gcn256,
          self.gcn512,
          self.gcn1024,
          self.gcn2048,
          self.br5,
          self.br4,
          self.br3,
          self.br2,
          self.br1,
          self.br256,
          self.br512,
          self.br1024,
          self.br2048,
          self.deconv1,
          self.deconv2,
      )
  
file_path: pywick/pywick/models/segmentation/resnet_gcn.py
imports: import torch.nn
  import torch.nn.init
  import torch.nn.functional
  import torchvision.models
  import numpy
label_desc: Use image node_id 1 to create a new ResnetGCN object from inherited base classes: nn with example: obj = ResnetGCN(num_classes, pretrained)