code: def add_evolved_transformer_hparams(hparams):
    
    # Evolved Transformer "layers" are twice as deep as Transformer, so roughly
    # halve the number that we use. These numbers are taken from
    # arxiv.org/abs/1901.11117 .
    hparams.num_encoder_layers = 3
    hparams.num_decoder_layers = 4
  
    # Learning rate and decay scheme that mimics the transformer Adam config,
    # but with cosine decay instead of rsqrt.
    hparams.learning_rate_constant /= hparams.learning_rate_warmup_steps ** 0.5
    hparams.learning_rate_schedule = (
        "constant*linear_warmup*single_cycle_cos_decay*rsqrt_hidden_size")
    # The current infrastructure does not support exposing
    # `train_steps` to the decay functions, and so we are hard coding the decay
    # steps here to match the default number of train steps used in `t2t_trainer`.
    # TODO(davidso): Thread `train_steps` through to decay functions so we do not
    # have to worry about a `learning_rate_decay_steps` mismatch.
    hparams.learning_rate_decay_steps = 250000
    return hparams
docs: Add Evolved Transformer hparams.
  
    Note: These are for the Adam optimizer, not the Adafactor optimizer used in
    the paper.
  
    Args:
      hparams: Current hparams.
  
    Returns:
      hparams updated with Evolved Transformer values.