def main(): raylab.register_all_agents() raylab.register_all_environments() with suppress(KeyboardInterrupt): parser = create_parser() args = parser.parse_args() run(args, parser)
def main(): env_args = { "forest_data_path": "/Users/anmartin/Projects/summer_project/hl_planner/forest_data.tiff", "simulation_data_path": "/Users/anmartin/Projects/FormationSimulation/fastsimulation.json", "num_measurements": 6, "max_forest_heights": [60, 90, 45, 38, 30, 76], "orbit_altitude": 757000, "draw_plot": True } parser = rollout.create_parser() args = parser.parse_args() register_env("offline-orekit", lambda _: OfflineOrekitEnv(env_args)) rollout.run(args, parser)
def train_agent(config): parser = argparse.ArgumentParser( description="Train or Run an RLlib Agent.", formatter_class=argparse.RawDescriptionHelpFormatter) subcommand_group = parser.add_subparsers( help="Commands to train or run an RLlib agent.", dest="command") train_parser = train.create_parser( lambda **kwargs: subcommand_group.add_parser("train", **kwargs)) rollout_parser = rollout.create_parser( lambda **kwargs: subcommand_group.add_parser("rollout", **kwargs)) options = parser.parse_args() register_env('env_mp500lwa4dpg70', env_creator) configFromYaml = { 'train-ppo': { 'env': 'env_mp500lwa4dpg70', 'run': 'PPO', 'config': config, 'checkpoint_freq': 1000, #'local_dir': "~/train_results", 'stop': { "timesteps_total": 1e10, }, } } ray.init() if options.command == "train": configFromYaml['train-ppo']['config']['env_config'] = env_input_config( True) run_experiments(configFromYaml) #train.run(options, train_parser) elif options.command == "rollout": options.run = configFromYaml['train-ppo']['run'] options.env = configFromYaml['train-ppo']['env'] options.no_render = True options.steps = 1000 options.out = None configFromYaml['train-ppo']['config']['env_config'] = env_input_config( False) configFromYaml['train-ppo']['config']['monitor'] = True options.config = configFromYaml['train-ppo']['config'] rollout.run(options, rollout_parser) else: parser.print_help()
def cli(): parser = argparse.ArgumentParser( description="Train or Run an RLlib Agent.", formatter_class=argparse.RawDescriptionHelpFormatter, epilog=EXAMPLE_USAGE) subcommand_group = parser.add_subparsers( help="Commands to train or run 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)) rollout_parser = rollout.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 == "rollout": rollout.run(options, rollout_parser) else: parser.print_help()
'--run', 'SAC', '--env', 'rocketmeister', '--episodes', '10', # '--no-render', ]) config = { 'env_config': { # "export_frames": True, "export_states": True, 'export_string': 'Training1', # filename prefix for exports }, } config_json = json.dumps(config) parser = rollout.create_parser() args = parser.parse_args(string.split() + ['--config', config_json]) # ────────────────────────────────────────────────────────────────────────── # if you want to automate this, by calling rollout.run() multiple times, you # uncomment the following lines too. They need to called before calling # rollout.run() a second, third, etc. time # ray.shutdown() # tune.register_env("rocketgame", lambda c: MultiEnv(c)) # from ray.rllib import _register_all # _register_all() # ────────────────────────────────────────────────────────────────────────── rollout.run(args, parser)
""" This script wraps the rllib rollout command but uses the custom environment. """ from ray.rllib.rollout import create_parser, run from ray.tune.registry import register_env from .env import register_envs register_envs() if __name__ == '__main__': parser = create_parser() parser.set_defaults(env='CavalryVsInfantry', no_render=True) args = parser.parse_args() run(args, parser)
def create_parser_custom(): parser = create_parser() parser.add_argument( '--dbg', action='store_true', help='Full debug mode (also enables local-mode)', ) parser.add_argument( '--num-episodes', default=1000, type=int, help='Number of full episodes to rollout', ) parser.add_argument( '--num-agents', default=-1, type=int, help= 'Allows to set number of agents less than number of players, to allow humans to join the match' 'Default value (-1) means number of agents is the same as max number of players', ) parser.add_argument( '--num-bots', default=-1, type=int, help= 'Add classic (non-neural) bots to the match. If default (-1) then use number of bots specified in env cfg', ) parser.add_argument( '--num-humans', default=0, type=int, help='Meatbags want to play?', ) parser.add_argument( '--fps', default=0, type=int, help='Enable sync mode with adjustable FPS.' 'Default (0) means default Doom FPS (~35). Leave at 0 for multiplayer', ) parser.add_argument( '--bot-difficulty', default=150, type=int, help='Adjust bot difficulty', ) parser.add_argument( '--env-frameskip', default=1, type=int, help= 'Usually frameskip is handled by the rollout loop for smooth rendering, but this is also an option', ) parser.add_argument( '--render-action-repeat', default=-1, type=int, help= 'Repeat an action that many frames during rollout. -1 (default) means read from env config', ) parser.add_argument( '--record-to', default=join(os.getcwd(), '..', 'doom_episodes'), type=str, help='Record episodes to this folder using Doom functionality', ) parser.add_argument( '--custom-res', default=None, type=str, help='Custom resolution string (e.g. 1920x1080).' 'Can affect performance of the model if does not match the resolution the model was trained on!', ) return parser