class_docstr: ### Model definition
code: def __init__(self):
      super().__init__()
      # Note that we omit the bias parameter
      self.conv1 = nn.Conv2d(1, 20, 5, 1, bias=False)
      # Batch normalization with 20 channels (output of convolution layer).
      # The input to this layer will have shape `[batch_size, 20, height(24), width(24)]`
      self.bn1 = BatchNorm(20)
      #
      self.conv2 = nn.Conv2d(20, 50, 5, 1, bias=False)
      # Batch normalization with 50 channels.
      # The input to this layer will have shape `[batch_size, 50, height(8), width(8)]`
      self.bn2 = BatchNorm(50)
      #
      self.fc1 = nn.Linear(4 * 4 * 50, 500, bias=False)
      # Batch normalization with 500 channels (output of fully connected layer).
      # The input to this layer will have shape `[batch_size, 500]`
      self.bn3 = BatchNorm(500)
      #
      self.fc2 = nn.Linear(500, 10)
  
file_path: annotated_deep_learning_paper_implementations/labml_nn/normalization/batch_norm/mnist.py
imports: import torch.nn
  import torch.nn.functional
  import torch.utils.data
  from labml import experiment
  from labml.configs import option
  from labml_helpers.module import Module
  from labml_nn.experiments.mnist import MNISTConfigs
  from labml_nn.normalization.batch_norm import BatchNorm
label_desc: Use image node_id 1 to create a new Model object from inherited base classes: Module with example: obj = Model()