code: def _decode_filename(base_filename, problem_name, decode_hp):
    
    if decode_hp.shards > 1:
      base_filename = _add_shard_to_filename(base_filename, decode_hp)
    if ("beam{beam}.alpha{alpha}.decodes".format(
        beam=str(decode_hp.beam_size), alpha=str(decode_hp.alpha))
        in base_filename):
      return base_filename
    else:
      return (
          "{base}.{model}.{hp}.{problem}.beam{beam}.alpha{alpha}.decodes".format(
              base=base_filename,
              model=FLAGS.model,
              hp=FLAGS.hparams_set,
              problem=problem_name,
              beam=str(decode_hp.beam_size),
              alpha=str(decode_hp.alpha)))
docs: Generates decode filename.
  
    Args:
      base_filename: A string, base of the decode filename.
      problem_name: A string, name of the problem.
      decode_hp: HParams for decoding.
  
    Returns:
      A string, produced decode filename.