code: def _build_additional_features(self, input_size):
      self.additional_blocks = []
      for i, (input_size, output_size, channels) in enumerate(
          zip(
              input_size[:-1], input_size[1:], [256, 256, 128, 128, 128]
          )
      ):
          if i < 3:
              layer = nn.Sequential(
                  nn.Conv2d(
                      input_size, channels, kernel_size=1, bias=False
                  ),
                  nn.BatchNorm2d(channels),
                  nn.ReLU(inplace=True),
                  nn.Conv2d(
                      channels,
                      output_size,
                      kernel_size=3,
                      padding=1,
                      stride=2,
                      bias=False,
                  ),
                  nn.BatchNorm2d(output_size),
                  nn.ReLU(inplace=True),
              )
          else:
              layer = nn.Sequential(
                  nn.Conv2d(
                      input_size, channels, kernel_size=1, bias=False
                  ),
                  nn.BatchNorm2d(channels),
                  nn.ReLU(inplace=True),
                  nn.Conv2d(
                      channels, output_size, kernel_size=3, bias=False
                  ),
                  nn.BatchNorm2d(output_size),
                  nn.ReLU(inplace=True),
              )
  
          self.additional_blocks.append(layer)
  
      self.additional_blocks = nn.ModuleList(self.additional_blocks)
  
imports: import torch
  import torch.nn
  from torchvision.models.resnet import resnet18, resnet34, resnet50, resnet101, resnet152
  from torch.nn.parallel import DistributedDataParallel
label_desc: Use image node_id 2 for calling the SSD300 obj's underlying member method code with example usage: obj._build_additional_features(input_size) without return types