Example #1
0
def main():
    raylab.register_all_agents()
    raylab.register_all_environments()
    with suppress(KeyboardInterrupt):
        parser = create_parser()
        args = parser.parse_args()
        run(args, parser)
Example #2
0
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()
Example #4
0
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)
Example #6
0
"""
    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)
Example #7
0
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