code: def main():
      # Create experiment
      experiment.create(
          name="roper_addition",
          comment="rotary value 7",
          writers={"screen", "labml"},
      )
      # Create configs
      conf = Configs()
      # Override configurations
      experiment.configs(
          conf,
          {
              "max_digits": 7,
              # No fixed positional embeddings
              "transformer.src_embed": "no_pos",
              "transformer.tgt_embed": "no_pos",
              # Encoder with RoPER attention
              "transformer.encoder_attn": "rotary_value",
              # Encoder with RoPE attention
              # 'transformer.encoder_attn': 'rotary',
              #
              "model": "rotary_pe_transformer",
              # Use a context size of $256$
              "seq_len": 512,
              # Train for 32 epochs
              "epochs": 20,
              # Batch size $4$
              "batch_size": 16,
              # Model size
              "d_model": 128,
              "transformer.ffn.d_ff": 512,
              "transformer.n_heads": 4,
              "transformer.dropout": 0.0,
              # Use [Adam optimizer](../../optimizers/noam.html)
              "optimizer.optimizer": "Adam",
              "optimizer.learning_rate": 2.5e-4,
          },
      )
  
      # Set models 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/transformers/rope/value_pe/arithmetic_experiment.py
imports: from labml import experiment
  from labml.configs import calculate
  from labml_nn.experiments.arithmetic_dataset import ArithmeticAutoregression
  from labml_nn.transformers import TransformerConfigs
  from labml_nn.transformers.rope.experiment import Configs
label_desc: Use image node_id 2 for calling a global function with example usage: main() without return types