コード例 #1
0
ファイル: run_ppo2.py プロジェクト: james/baselines
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())
コード例 #2
0
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)
コード例 #3
0
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)
コード例 #4
0
ファイル: run_atari.py プロジェクト: zhangyx96/baselines
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)
コード例 #5
0
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)