def main(_):
  pp.pprint(flags.FLAGS.__flags)

  if not os.path.exists(FLAGS.checkpoint_dir):
    print(" [*] Creating checkpoint directory...")
    os.makedirs(FLAGS.checkpoint_dir)

  with tf.Session() as sess:
    model = LSTMDQN(checkpoint_dir=FLAGS.checkpoint_dir,
                    seq_length=FLAGS.seq_length,
                    embed_dim=FLAGS.embed_dim,
                    layer_depth=FLAGS.layer_depth,
                    batch_size=FLAGS.batch_size,
                    forward_only=FLAGS.forward_only,
                    game_name=FLAGS.game_name,
                    game_dir=FLAGS.game_dir)

    if not FLAGS.forward_only:
      model.run()
    else:
      test_loss = model.test(2)
      print(" [*] Test loss: %2.6f, perplexity: %2.6f" % (test_loss, np.exp(test_loss)))