code: def main():
      """
      #### Create and run the experiment
      """
      # Create experiment
      experiment.create(name="deep_norm", writers={"screen", "web_api"})
      # Create configs
      conf = Configs()
      # Override configurations
      experiment.configs(
          conf,
          {
              # Use character level tokenizer
              "tokenizer": "character",
              # Prompt separator is blank
              "prompt_separator": "",
              # Starting prompt for sampling
              "prompt": "It is ",
              # Use Tiny Shakespeare dataset
              "text": "tiny_shakespeare",
              # Use a context size of $256$
              "seq_len": 256,
              # Train for 32 epochs
              "epochs": 32,
              # Batch size $16$
              "batch_size": 16,
              # Switch between training and validation for $10$ times per epoch
              "inner_iterations": 10,
              # Number of layers
              "n_layers": 50,
              # Adam optimizer with no warmup
              "optimizer.optimizer": "Adam",
              "optimizer.learning_rate": 1.25e-4,
          },
      )
  
      # Set model(s) for saving and loading
      experiment.add_pytorch_models({"model": conf.model})
  
      # Start the experiment
      with experiment.start():
          # Run training
          conf.run()
  
file_path: annotated_deep_learning_paper_implementations/labml_nn/normalization/deep_norm/experiment.py
imports: import copy
  import torch
  import torch.nn
  from labml import experiment
  from labml.configs import option
  from labml_helpers.module import Module
  from labml_nn.experiments.nlp_autoregression import NLPAutoRegressionConfigs
  from labml_nn.normalization.deep_norm import DeepNormTransformerLayer
  from labml_nn.transformers import MultiHeadAttention
  from labml_nn.transformers.feed_forward import FeedForward
label_desc: Use image node_id 4 for calling a global function with example usage: main() without return types