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)
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)
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)
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)
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)