code: def decode(estimator, hparams, decode_hp):
    
    if FLAGS.decode_interactive:
      if estimator.config.use_tpu:
        raise ValueError("TPU can only decode from dataset.")
      decoding.decode_interactively(estimator, hparams, decode_hp,
                                    checkpoint_path=FLAGS.checkpoint_path)
    elif FLAGS.decode_from_file:
      decoding.decode_from_file(estimator, FLAGS.decode_from_file, hparams,
                                decode_hp, FLAGS.decode_to_file,
                                checkpoint_path=FLAGS.checkpoint_path)
      if FLAGS.checkpoint_path and FLAGS.keep_timestamp:
        ckpt_time = os.path.getmtime(FLAGS.checkpoint_path + ".index")
        os.utime(FLAGS.decode_to_file, (ckpt_time, ckpt_time))
    else:
      decoding.decode_from_dataset(
          estimator,
          FLAGS.problem,
          hparams,
          decode_hp,
          decode_to_file=FLAGS.decode_to_file,
          dataset_split="test" if FLAGS.eval_use_test_set else None,
          checkpoint_path=FLAGS.checkpoint_path)
docs: Decode from estimator. Interactive, from file, or from dataset.