#!/usr/bin/env python import argparse from ray.rllib import evaluate, train from ray.rllib.utils.deprecation import deprecation_warning EXAMPLE_USAGE = """ Example usage for training: rllib train --run DQN --env CartPole-v0 Example usage for evaluate (aka: "rollout"): rllib evaluate /trial_dir/checkpoint_000001/checkpoint-1 --run DQN """ def cli(): parser = argparse.ArgumentParser( description="Train or evaluate an RLlib Trainer.", formatter_class=argparse.RawDescriptionHelpFormatter, epilog=EXAMPLE_USAGE) subcommand_group = parser.add_subparsers( help="Commands to train or evaluate an RLlib agent.", dest="command") # see _SubParsersAction.add_parser in # https://github.com/python/cpython/blob/master/Lib/argparse.py train_parser = train.create_parser( lambda **kwargs: subcommand_group.add_parser("train", **kwargs)) evaluate_parser = evaluate.create_parser( lambda **kwargs: subcommand_group.add_parser("evaluate", **kwargs)) rollout_parser = evaluate.create_parser( lambda **kwargs: subcommand_group.add_parser("rollout", **kwargs)) options = parser.parse_args() if options.command == "train": train.run(options, train_parser) elif options.command == "evaluate": evaluate.run(options, evaluate_parser) elif options.command == "rollout": deprecation_warning( old="rllib rollout", new="rllib evaluate", error=False) evaluate.run(options, rollout_parser) else: parser.print_help()