code: def __init__(self, input_channel, output_channel=256):
      super(VGG_FeatureExtractor, self).__init__()
      self.output_channel = [
          int(output_channel / 8),
          int(output_channel / 4),
          int(output_channel / 2),
          output_channel,
      ]
      self.ConvNet = nn.Sequential(
          nn.Conv2d(input_channel, self.output_channel[0], 3, 1, 1),
          nn.ReLU(True),
          nn.MaxPool2d(2, 2),
          nn.Conv2d(
              self.output_channel[0], self.output_channel[1], 3, 1, 1
          ),
          nn.ReLU(True),
          nn.MaxPool2d(2, 2),
          nn.Conv2d(
              self.output_channel[1], self.output_channel[2], 3, 1, 1
          ),
          nn.ReLU(True),
          nn.Conv2d(
              self.output_channel[2], self.output_channel[2], 3, 1, 1
          ),
          nn.ReLU(True),
          nn.MaxPool2d((2, 1), (2, 1)),
          nn.Conv2d(
              self.output_channel[2],
              self.output_channel[3],
              3,
              1,
              1,
              bias=False,
          ),
          nn.BatchNorm2d(self.output_channel[3]),
          nn.ReLU(True),
          nn.Conv2d(
              self.output_channel[3],
              self.output_channel[3],
              3,
              1,
              1,
              bias=False,
          ),
          nn.BatchNorm2d(self.output_channel[3]),
          nn.ReLU(True),
          nn.MaxPool2d((2, 1), (2, 1)),
          nn.Conv2d(
              self.output_channel[3], self.output_channel[3], 2, 1, 0
          ),
          nn.ReLU(True),
      )
  
imports: import torch
  import torch.nn
  import torch.nn.init
  import torchvision
  from torchvision import models
  from collections import namedtuple
  from packaging import version
label_desc: Use image node_id 1 to create a new VGG_FeatureExtractor object from inherited base classes: nn with example: obj = VGG_FeatureExtractor(input_channel, output_channel)