code: def mtf_bitransformer_base():
    
    hparams = mtf_transformer2_base()
    hparams.max_length = 256
    hparams.shared_embedding = True
    # HYPERPARAMETERS FOR THE LAYER STACKS
    hparams.add_hparam("encoder_layers", ["self_att", "drd"] * 6)
    hparams.add_hparam("decoder_layers", ["self_att", "enc_att", "drd"] * 6)
    hparams.add_hparam("encoder_num_layers", 6)
    hparams.add_hparam("decoder_num_layers", 6)
    # number of heads in multihead attention
    hparams.add_hparam("encoder_num_heads", 8)
    hparams.add_hparam("decoder_num_heads", 8)
    hparams.add_hparam("local_attention_radius", 128)
  
    # default of 0 for standard transformer behavior
    # 1 means a single set of keys and values that are read by all query heads
    hparams.add_hparam("encoder_num_memory_heads", 0)
    hparams.add_hparam("decoder_num_memory_heads", 0)
    # share attention keys and values
    hparams.add_hparam("encoder_shared_kv", False)
    hparams.add_hparam("decoder_shared_kv", False)
  
    # Parameters for computing the maximum decode length in beam search.
    # Maximum decode length is:
    #    min(max_length,
    #        decode_length_multiplier * input_length + decode_length_constant)
    hparams.add_hparam("decode_length_multiplier", 1.5)
    hparams.add_hparam("decode_length_constant", 10.0)
    # used during decoding
    hparams.add_hparam("alpha", 0.6)
    hparams.sampling_temp = 0.0
    return hparams
docs: Machine translation base configuration.