class_docstr: ### VGG model for CIFAR-10 classification
code: def __init__(self, groups: int = 32):
      super().__init__()
      layers = []
      # RGB channels
      in_channels = 3
      # Number of channels in each layer in each block
      for block in [
          [64, 64],
          [128, 128],
          [256, 256, 256],
          [512, 512, 512],
          [512, 512, 512],
      ]:
          # Convolution, Normalization and Activation layers
          for channels in block:
              layers += [
                  nn.Conv2d(
                      in_channels, channels, kernel_size=3, padding=1
                  ),
                  GroupNorm(groups, channels),
                  nn.ReLU(inplace=True),
              ]
              in_channels = channels
          # Max pooling at end of each block
          layers += [nn.MaxPool2d(kernel_size=2, stride=2)]
  
      # Create a sequential model with the layers
      self.layers = nn.Sequential(*layers)
      # Final logits layer
      self.fc = nn.Linear(512, 10)
  
file_path: annotated_deep_learning_paper_implementations/labml_nn/normalization/group_norm/experiment.py
imports: import torch.nn
  from labml import experiment
  from labml.configs import option
  from labml_helpers.module import Module
  from labml_nn.experiments.cifar10 import CIFAR10Configs
  from labml_nn.normalization.group_norm import GroupNorm
label_desc: Use image node_id 1 to create a new Model object from inherited base classes: Module with example: obj = Model(groups)