def main():
    parser = argparse.ArgumentParser(description="Run an Atari benchmark.")
    parser.add_argument("env", help="Name of the Atari game (e.g. Pong).")
    parser.add_argument(
        "agent",
        help="Name of the agent (e.g. dqn). See presets for available agents.")
    parser.add_argument(
        "--device",
        default="cuda",
        help=
        "The name of the device to run the agent on (e.g. cpu, cuda, cuda:0).",
    )
    parser.add_argument("--frames",
                        type=int,
                        default=40e6,
                        help="The number of training frames.")
    parser.add_argument("--render",
                        type=bool,
                        default=False,
                        help="Render the environment.")
    parser.add_argument("--logdir",
                        default='runs',
                        help="The base logging directory.")
    args = parser.parse_args()

    env = AtariEnvironment(args.env, device=args.device)
    agent_name = args.agent
    agent = getattr(atari, agent_name)

    run_experiment(agent(device=args.device, last_frame=args.frames),
                   env,
                   args.frames,
                   render=args.render,
                   logdir=args.logdir)
Exemplo n.º 2
0
def run():
    # parse arguments
    parser = argparse.ArgumentParser(description="Run an Atari benchmark.")
    parser.add_argument("env", help="Name of the Atari game (e.g. Pong)")
    parser.add_argument(
        "--device",
        default="cuda",
        help=
        "The name of the device to run the agent on (e.g. cpu, cuda, cuda:0)",
    )
    parser.add_argument("--frames",
                        type=int,
                        default=2e6,
                        help="The number of training frames")
    args = parser.parse_args()

    # create atari environment
    env = AtariEnvironment(args.env, device=args.device)

    # run the experiment
    run_experiment(model_based_dqn.device(args.device), env, args.frames)

    # run the baseline agent for comparison
    run_experiment(
        dqn.device(args.device).hyperparameters(replay_buffer_size=1e5), env,
        args.frames)
def main():
    parser = argparse.ArgumentParser(
        description="Run a classic control benchmark.")
    parser.add_argument("env", help="Name of the env (e.g. CartPole-v1).")
    parser.add_argument(
        "agent",
        help="Name of the agent (e.g. dqn). See presets for available agents.")
    parser.add_argument(
        "--device",
        default="cuda",
        help=
        "The name of the device to run the agent on (e.g. cpu, cuda, cuda:0).",
    )
    parser.add_argument("--frames",
                        type=int,
                        default=20000,
                        help="The number of training frames.")
    parser.add_argument("--render",
                        type=bool,
                        default=False,
                        help="Render the environment.")
    args = parser.parse_args()

    env = GymEnvironment(args.env, device=args.device)
    agent_name = args.agent
    agent = getattr(classic_control, agent_name)

    run_experiment(agent(device=args.device),
                   env,
                   args.frames,
                   render=args.render)
Exemplo n.º 4
0
def run_procgen():
    parser = argparse.ArgumentParser(description="Run an Atari benchmark.")
    parser.add_argument("env", help="Name of the procgen env.")
    parser.add_argument(
        "--device",
        default="cuda",
        help=
        "The name of the device to run the agent on (e.g. cpu, cuda, cuda:0).",
    )
    parser.add_argument("--frames",
                        type=int,
                        default=10e6,
                        help="The number of training frames.")
    parser.add_argument("--render",
                        type=bool,
                        default=False,
                        help="Render the environment.")
    args = parser.parse_args()

    env = ProcgenAtariEnv(args.env, device='cuda')

    run_experiment(a2c(device=args.device, last_frame=args.frames),
                   env,
                   args.frames,
                   render=args.render)
def main():
    device = 'cpu'
    timesteps = 1e7
    env = Atari2Environment('BreakoutNoFrameskip-v4', device=device)
    env.seed(2)
    run_experiment(
        [dqn(device=device)],
        [env],
        timesteps,
    )
def main():
    parser = argparse.ArgumentParser(description="Run a continuous actions benchmark.")
    parser.add_argument("env", help="Name of the env (e.g. 'lander', 'cheetah')")
    parser.add_argument(
        "agent", help="Name of the agent (e.g. ddpg). See presets for available agents."
    )
    parser.add_argument(
        "--device",
        default="cuda",
        help="The name of the device to run the agent on (e.g. cpu, cuda, cuda:0).",
    )
    parser.add_argument(
        "--frames", type=int, default=2e6, help="The number of training frames."
    )
    parser.add_argument(
        "--render", action="store_true", default=False, help="Render the environment."
    )
    parser.add_argument(
        "--logdir", default='runs', help="The base logging directory."
    )
    parser.add_argument("--writer", default='tensorboard', help="The backend used for tracking experiment metrics.")
    parser.add_argument(
        '--hyperparameters',
        default=[],
        nargs='*',
        help="Custom hyperparameters, in the format hyperparameter1=value1 hyperparameter2=value2 etc."
    )
    args = parser.parse_args()

    if args.env in ENVS:
        env = GymEnvironment(args.env, device=args.device)
    elif 'BulletEnv' in args.env or args.env in PybulletEnvironment.short_names:
        env = PybulletEnvironment(args.env, device=args.device)
    else:
        env = GymEnvironment(args.env, device=args.device)

    agent_name = args.agent
    agent = getattr(continuous, agent_name)
    agent = agent.device(args.device)

    # parse hyperparameters
    hyperparameters = {}
    for hp in args.hyperparameters:
        key, value = hp.split('=')
        hyperparameters[key] = type(agent.default_hyperparameters[key])(value)
    agent = agent.hyperparameters(**hyperparameters)

    run_experiment(
        agent,
        env,
        frames=args.frames,
        render=args.render,
        logdir=args.logdir,
        writer=args.writer,
    )
def main():
    device = 'cpu'
    timesteps = 40000
    run_experiment(
        [dqn(), a2c()],
        [
            GymEnvironment('CartPole-v0', device),
            GymEnvironment('Acrobot-v1', device)
        ],
        timesteps,
    )
    plot_returns_100('runs', timesteps=timesteps)
Exemplo n.º 8
0
def main():
    parser = argparse.ArgumentParser(description="Run an Atari benchmark.")
    parser.add_argument("env", help="Name of the Atari game (e.g. Pong).")
    parser.add_argument(
        "agent",
        help="Name of the agent (e.g. dqn). See presets for available agents.")
    parser.add_argument(
        "--device",
        default="cuda",
        help=
        "The name of the device to run the agent on (e.g. cpu, cuda, cuda:0).",
    )
    parser.add_argument("--frames",
                        type=int,
                        default=40e6,
                        help="The number of training frames.")
    parser.add_argument("--render",
                        action="store_true",
                        default=False,
                        help="Render the environment.")
    parser.add_argument("--logdir",
                        default='runs',
                        help="The base logging directory.")
    parser.add_argument(
        "--writer",
        default='tensorboard',
        help="The backend used for tracking experiment metrics.")
    parser.add_argument('--hyperparameters', default=[], nargs='*')
    args = parser.parse_args()

    env = AtariEnvironment(args.env, device=args.device)

    agent_name = args.agent
    agent = getattr(atari, agent_name)
    agent = agent.device(args.device)

    # parse hyperparameters
    hyperparameters = {}
    for hp in args.hyperparameters:
        key, value = hp.split('=')
        hyperparameters[key] = type(agent.default_hyperparameters[key])(value)
    agent = agent.hyperparameters(**hyperparameters)

    run_experiment(
        agent,
        env,
        args.frames,
        render=args.render,
        logdir=args.logdir,
        writer=args.writer,
    )
def main():
    parser = argparse.ArgumentParser(
        description="Run a continuous actions benchmark.")
    parser.add_argument("env", help="Name of the env (see envs)")
    parser.add_argument(
        "agent",
        help="Name of the agent (e.g. ddpg). See presets for available agents."
    )
    parser.add_argument(
        "--device",
        default="cuda",
        help=
        "The name of the device to run the agent on (e.g. cpu, cuda, cuda:0).",
    )
    parser.add_argument("--frames",
                        type=int,
                        default=2e6,
                        help="The number of training frames.")
    parser.add_argument("--render",
                        type=bool,
                        default=False,
                        help="Render the environment.")
    parser.add_argument("--logdir",
                        default='runs',
                        help="The base logging directory.")
    args = parser.parse_args()

    if args.env in ENVS:
        env_id = ENVS[args.env]
    else:
        env_id = args.env

    env = GymEnvironment(env_id, device=args.device)
    agent_name = args.agent
    agent = getattr(continuous, agent_name)

    run_experiment(agent(device=args.device),
                   env,
                   frames=args.frames,
                   render=args.render,
                   logdir=args.logdir)
Exemplo n.º 10
0
def main():
    DEVICE = 'cpu'
    # DEVICE = 'cuda' # uncomment for gpu support
    timesteps = 40000
    run_experiment(
        [
            # DQN with default hyperparameters
            dqn.device(DEVICE),
            # DQN with a custom hyperparameters and a custom name.
            dqn.device(DEVICE).hyperparameters(replay_buffer_size=100
                                               ).name('dqn-small-buffer'),
            # A2C with a custom name
            a2c.device(DEVICE).name('not-dqn')
        ],
        [
            GymEnvironment('CartPole-v0', DEVICE),
            GymEnvironment('Acrobot-v1', DEVICE)
        ],
        timesteps,
    )
    plot_returns_100('runs', timesteps=timesteps)