def parse_args()

in pyrela/main.py [0:0]


def parse_args():
    parser = argparse.ArgumentParser(description="Run DQN on Atari")
    parser.add_argument("--save_dir", type=str, default="exps/exp1")

    # DQN settings
    parser.add_argument("--multi_step", type=int, default=3, help="multi-step return")

    # R2D2 settings
    parser.add_argument("--algo", type=str, required=True, help="apex/r2d2")
    parser.add_argument("--seq_burn_in", type=int, default=40)
    parser.add_argument("--seq_len", type=int, default=80)
    parser.add_argument("--eta", type=float, default=0.9)
    parser.add_argument("--same_hid", type=int, default=0)

    # game settings
    parser.add_argument("--game", type=str, default="boxing")
    parser.add_argument("--one_life", type=int, default=0)
    parser.add_argument("--seed", type=int, default=10002)
    parser.add_argument(
        "--max_frame", type=int, default=108000, help="30min of gameplay (50fps)"
    )
    parser.add_argument("--gamma", type=float, default=0.997, help="discount factor")

    # optimization/training settings
    parser.add_argument("--lr", type=float, default=6.25e-5, help="learning rate")
    parser.add_argument("--eps", type=float, default=1.5e-4, help="optim epsilon")
    parser.add_argument("--grad_clip", type=float, default=40)
    parser.add_argument("--batchsize", type=int, default=512, help="for train")
    parser.add_argument("--num_epoch", type=int, default=3000)
    parser.add_argument("--epoch_len", type=int, default=1000)
    parser.add_argument("--num_update_between_sync", type=int, default=2500)
    parser.add_argument("--train_device", type=str, default="cuda:0")

    # replay buffer settings
    parser.add_argument("--burn_in_frames", type=int, default=80000)
    parser.add_argument("--replay_buffer_size", type=int, default=int(2e6))
    parser.add_argument("--prefetch", type=int, default=1)
    parser.add_argument(
        "--priority_exponent", type=float, default=0.6, help="alpha in PER paper"
    )
    parser.add_argument(
        "--importance_exponent", type=float, default=0.4, help="beta in PER paper"
    )

    # thread setting
    parser.add_argument("--num_thread", type=int, default=40)
    parser.add_argument("--num_game_per_thread", type=int, default=20)

    # actor setting
    parser.add_argument("--act_base_eps", type=float, default=0.4)
    parser.add_argument("--act_eps_alpha", type=float, default=7)
    parser.add_argument("--act_device", type=str, default="cuda:1")
    parser.add_argument("--actor_sync_freq", type=int, default=20)

    # others
    parser.add_argument("--num_eval_game", type=int, default=10)
    parser.add_argument("--record_time", type=int, default=0)

    args = parser.parse_args()
    return args