code: def __init__(self, model_config: AttrDict, model_name: str):
      super().__init__()
  
      conv1 = nn.Sequential(
          nn.Conv2d(3, 64, kernel_size=11, stride=4, padding=2),
          nn.BatchNorm2d(64),
          nn.ReLU(inplace=True),
      )
      pool1 = nn.MaxPool2d(kernel_size=3, stride=2)
      conv2 = nn.Sequential(
          nn.Conv2d(64, 192, kernel_size=5, padding=2),
          nn.BatchNorm2d(192),
          nn.ReLU(inplace=True),
      )
      pool2 = nn.MaxPool2d(kernel_size=3, stride=2)
      conv3 = nn.Sequential(
          nn.Conv2d(192, 384, kernel_size=3, padding=1),
          nn.BatchNorm2d(384),
          nn.ReLU(inplace=True),
      )
      conv4 = nn.Sequential(
          nn.Conv2d(384, 256, kernel_size=3, padding=1),
          nn.BatchNorm2d(256),
          nn.ReLU(inplace=True),
      )
      conv5 = nn.Sequential(
          nn.Conv2d(256, 256, kernel_size=3, padding=1),
          nn.BatchNorm2d(256),
          nn.ReLU(inplace=True),
      )
      pool5 = nn.MaxPool2d(kernel_size=3, stride=2)
  
      flatten = Flatten()
  
      self._feature_blocks = nn.ModuleList(
          [
              conv1,
              pool1,
              conv2,
              pool2,
              conv3,
              conv4,
              conv5,
              pool5,
              flatten,
          ]
      )
      self.all_feat_names = [
          "conv1",
          "pool1",
          "conv2",
          "pool2",
          "conv3",
          "conv4",
          "conv5",
          "pool5",
          "flatten",
      ]
      assert len(self.all_feat_names) == len(self._feature_blocks)
  
file_path: vissl/vissl/models/trunks/alexnet_rotnet.py
imports: import torch.nn
  from vissl.config import AttrDict
  from vissl.models.model_helpers import Flatten, get_trunk_forward_outputs_module_list
  from vissl.models.trunks import register_model_trunk
label_desc: Use image node_id 1 to create a new AlexNetRotNet object from inherited base classes: nn with example: obj = AlexNetRotNet(model_config, model_name)