code: import torch.nn as nn
  
  
  class VGG11(nn.Module):
      def __init__(self):
          super().__init__()
          conv_layers = nn.Sequential(
              nn.Conv2d(3, 64, kernel_size=3, padding=1),
              nn.ReLU(True),
              nn.MaxPool2d((2, 2), 2),
  
              nn.Conv2d(64, 128, kernel_size=3, padding=1),
              nn.ReLU(True),
              nn.MaxPool2d((2, 2), 2),
  
              nn.Conv2d(128, 256, kernel_size=3, padding=1),
              nn.ReLU(True),
              nn.Conv2d(256, 256, kernel_size=3, padding=1),
              nn.ReLU(True),
              nn.MaxPool2d((2, 2), 2),
  
              nn.Conv2d(256, 512, kernel_size=3, padding=1),
              nn.ReLU(True),
              nn.Conv2d(512, 512, kernel_size=3, padding=1),
              nn.ReLU(True),
              nn.MaxPool2d((2, 2), 2),
  
              nn.Conv2d(512, 512, kernel_size=3, padding=1),
              nn.ReLU(True),
              nn.Conv2d(512, 512, kernel_size=3, padding=1),
              nn.ReLU(True),
              nn.MaxPool2d((2, 2), 2),
          )
          fc_layers = nn.Sequential(
              nn.Linear(512 * 7 * 7, 4096),
              nn.ReLU(True),
              nn.Dropout(0.5),
              nn.Linear(4096, 4096),
              nn.ReLU(True),
              nn.Dropout(0.5),
          )
          self.feature = nn.Sequential(
              conv_layers,
              nn.Flatten(),
              fc_layers,
          )
          self.classifier = nn.Linear(4096, 12)
  
      def forward(self, x):
          feature = self.feature(x)
          score = self.classifier(feature)
          return score
  
apis: torch.nn.MaxPool2d torch.nn.Linear torch.nn.Flatten torch.nn.Conv2d torch.nn.ReLU torch.nn.Dropout