def parse_args(): parser = argparse.ArgumentParser() parser.add_argument('--env-id', type=str, default='Custom0-v0') parser.add_argument('--num-cpu', type=int, default=1) parser.add_argument('--seed', type=int, default=7) parser.add_argument('--logdir', type=str, default='Humanoid') parser.add_argument('--agentName', type=str, default='Humanoid_128') parser.add_argument('--resume', type=int, default=0) parser.add_argument('--num_timesteps', type=int, default=1e7) parser.add_argument('--timesteps_per_batch', type=int, default=4096) parser.add_argument('--hid_size', type=int, default=128) parser.add_argument('--num_hid_layers', type=int, default=2) boolean_flag(parser, 'noisy_nets', default=False) parser.add_argument('--clip_param', type=float, default=0.2) parser.add_argument('--entcoeff', type=float, default=0.0) parser.add_argument('--optim_epochs', type=int, default=20) parser.add_argument('--optim_batchsize', type=int, default=64) parser.add_argument( '--optim_stepsize', type=float, default=5e-4 ) # 3e-4 isefault for single agent training with constant schedule parser.add_argument( '--optim_schedule', type=str, default='constant') # Other options: 'adaptive', 'linear' parser.add_argument('--desired_kl', type=float, default=0.02) parser.add_argument('--gamma', type=float, default=0.99) parser.add_argument('--lam', type=float, default=0.95) parser.add_argument('--portnum', required=False, type=int, default=5050) parser.add_argument('--server_ip', required=False, default='localhost') parser.add_argument('--num_parallel', type=int, default=0) parser.add_argument('--server_list', required=False, type=str, default='') parser.add_argument('--num_thread_list', required=False, type=str, default='') #Must either be "" or summed to num_cpu return vars(parser.parse_args())
def main(): import argparse parser = argparse.ArgumentParser( formatter_class=argparse.ArgumentDefaultsHelpFormatter) parser.add_argument('--env', help='environment ID', default='Hopper-v1') parser.add_argument('--seed', help='RNG seed', type=int, default=0) parser.add_argument('--num-timesteps', type=int, default=int(1e6)) boolean_flag(parser, 'save-model', default=True) boolean_flag(parser, 'load-model', default=False) parser.add_argument('--model-dir') args = parser.parse_args() # logger.configure() if args.load_model and args.model_dir is None: print("When loading model, you should set --model-dir") return train(args.env, num_timesteps=args.num_timesteps, seed=args.seed, save_model=args.save_model, load_model=args.load_model, model_dir=args.model_dir)
def main(): import argparse parser = argparse.ArgumentParser( formatter_class=argparse.ArgumentDefaultsHelpFormatter) parser.add_argument('--env', help='environment ID', default='Hopper-v1') parser.add_argument('--seed', help='RNG seed', type=int, default=0) parser.add_argument('--num-timesteps', type=int, default=int(1e6)) boolean_flag(parser, 'save-model', default=True) boolean_flag(parser, 'load-model', default=False) parser.add_argument('--model-dir') parser.add_argument('--timesteps_per_actorbatch', type=int, default=4096) parser.add_argument('--clip_param', type=float, default=0.29) parser.add_argument('--ent_coeff', type=float, default=0.01) parser.add_argument('--epochs', type=int, default=30) parser.add_argument('--learning_rate', type=float, default=1e-6) parser.add_argument('--batch_size', type=int, default=1024) parser.add_argument('--gamma', type=float, default=0.999) parser.add_argument('--lambd', type=float, default=1.0) parser.add_argument('--exploration_rate', type=float, default=-6) args = parser.parse_args() # logger.configure() filename = str(args.timesteps_per_actorbatch) + "_" + str(args.clip_param) + "_" + str(args.ent_coeff) + "_" + str(args.epochs) + \ "_" + str(args.learning_rate) + "_" + str(args.batch_size) + "_" + str(args.gamma) + "_" + str(args.lambd) + "_" + str(args.exploration_rate) print(filename) if args.load_model and args.model_dir is None: print("When loading model, you should set --model-dir") return train(args.env, num_timesteps=args.num_timesteps, seed=args.seed, save_model=args.save_model, load_model=args.load_model, model_dir=args.model_dir, timesteps_per_actorbatch=args.timesteps_per_actorbatch, clip_param=args.clip_param, ent_coeff=args.ent_coeff, epochs=args.epochs, learning_rate=args.learning_rate, batch_size=args.batch_size, gamma=args.gamma, lambd=args.lambd, exploration_rate=args.exploration_rate, filename = filename)
def main(): parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter) parser.add_argument('--env', help='environment ID', default='CarnivalNoFrameskip-v4') #parser.add_argument('--env', help='environment ID', default='BreakoutNoFrameskip-v4') parser.add_argument('--seed', help='RNG seed', type=int, default=0) parser.add_argument('--policy', help='Policy architecture', choices=['cnn', 'lstm', 'lnlstm'], default='cnn') parser.add_argument('--lrschedule', help='Learning rate schedule', choices=['constant', 'linear'], default='constant') parser.add_argument('--logdir', help ='Directory for logging', default='./log') parser.add_argument('--num-timesteps', type=int, default=int(10e6)) parser.add_argument('--log-dir', type=str, default=None) parser.add_argument('--learntime', type=int, default=int(4e6)) parser.add_argument('--buffersize', type=int, default=int(50000)) boolean_flag(parser, 'perform', default=False) boolean_flag(parser, 'use-expert', default=False) boolean_flag(parser, 'save-networks', default=False) args = parser.parse_args() # logger.configure(os.path.abspath(args.logdir)) # dir = os.path.join('./logs/', datetime.datetime.now().strftime("%Y-%m-%d-%H-%M-%S-%f")) # logger.configure(dir=dir) #set the log_dir if args.log_dir is None: dir = os.path.join('./logs/', args.env, datetime.datetime.now().strftime("%Y-%m-%d-%H-%M-%S-%f")) else: dir = os.path.join('./logs/', args.env, args.log_dir) logger.configure(dir=dir) train(args.env, num_timesteps=args.num_timesteps, seed=args.seed, policy=args.policy, lrschedule=args.lrschedule, num_cpu=16, perform = args.perform, use_expert = args.use_expert, save_networks = args.save_networks, learn_time=args.learntime,expert_buffer_size = args.buffersize)
def main(): import argparse parser = argparse.ArgumentParser( formatter_class=argparse.ArgumentDefaultsHelpFormatter) # Default paramters parser.add_argument('--env', help='environment ID', default='Hopper-v1') parser.add_argument('--seed', help='RNG seed', type=int, default=0) boolean_flag(parser, 'save-model', default=True) boolean_flag(parser, 'load-model', default=False) parser.add_argument('--model-dir') # Agent parameters parser.add_argument('--max_vel', type=float, default=INVALID) parser.add_argument('--radius', type=float, default=INVALID) parser.add_argument('--reward_radius', type=float, default=INVALID) parser.add_argument('--cooldown_time', type=float, default=INVALID) parser.add_argument('--reward_factor', type=float, default=INVALID) parser.add_argument('--collision_vel', type=float, default=INVALID) parser.add_argument('--kp', type=float, default=INVALID) parser.add_argument('--xw', type=float, default=INVALID) parser.add_argument('--yw', type=float, default=INVALID) parser.add_argument('--zw', type=float, default=INVALID) parser.add_argument('--derivative', type=float, default=INVALID) parser.add_argument('--eval_basel', type=float, default=INVALID) parser.add_argument('--num_t_same_input', type=float, default=INVALID) # Neural net parameters parser.add_argument('--schedule', default="-1") parser.add_argument('--hid_siz', type=int, default=INVALID) parser.add_argument('--num_hid_layers', type=int, default=INVALID) parser.add_argument('--exploration_rate', type=float, default=INVALID) # PPO parameters parser.add_argument('--num_timesteps', type=int, default=INVALID) parser.add_argument('--timesteps_per_actorbatch', type=int, default=4096) parser.add_argument('--clip_param', type=float, default=0.1) parser.add_argument('--ent_coeff', type=float, default=0.01) parser.add_argument('--epochs', type=int, default=10) parser.add_argument('--learning_rate', type=float, default=1e-5) parser.add_argument('--batch_size', type=int, default=1024) parser.add_argument('--gamma', type=float, default=0.99) parser.add_argument('--lambd', type=float, default=0.95) # PPO parameters args = parser.parse_args() # logger.configure() filename = str(args.max_vel).replace('.','*') + "_" + \ str(args.reward_factor).replace('.','*') + "_" + \ str(args.collision_vel).replace('.','*') + "_" + \ str(args.kp).replace('.','*') + "_" + \ str(args.xw).replace('.','*') + "_" + \ str(args.yw).replace('.','*') + "_" + \ str(args.zw).replace('.','*') + "___" + \ str(args.schedule).replace('.','*') + "_" + \ str(args.hid_siz).replace('.','*') + "_" + \ str(args.num_hid_layers).replace('.','*') + "_" + \ str(args.exploration_rate).replace('.','*') + "___" + \ str(args.num_timesteps).replace('.','*') + "_" + \ str(args.timesteps_per_actorbatch).replace('.','*') + "_" + \ str(args.clip_param).replace('.','*') + "_" + \ str(args.ent_coeff).replace('.','*') + "_" + \ str(args.epochs).replace('.','*') + "_" + \ str(args.learning_rate).replace('.','*') + "_" + \ str(args.batch_size).replace('.','*') + "_" + \ str(args.gamma).replace('.','*') + "_" + \ str(args.lambd).replace('.','*') print(filename) #logger.set_dir(logger.get_dir()+'___'+filename) if args.load_model and args.model_dir is None: print("When loading model, you should set --model-dir") return train(args.env, num_timesteps=args.num_timesteps, seed=args.seed, save_model=args.save_model, load_model=args.load_model, model_dir=args.model_dir, timesteps_per_actorbatch=args.timesteps_per_actorbatch, clip_param=args.clip_param, ent_coeff=args.ent_coeff, epochs=args.epochs, learning_rate=args.learning_rate, batch_size=args.batch_size, gamma=args.gamma, lambd=args.lambd, exploration_rate=args.exploration_rate, filename=filename, schedule=args.schedule, hid_siz=args.hid_siz, num_hid_layers=args.num_hid_layers)