in pyhanabi/selfplay.py [0:0]
def parse_args():
parser = argparse.ArgumentParser(description="train dqn on hanabi")
parser.add_argument("--save_dir", type=str, default="exps/exp1")
parser.add_argument("--method", type=str, default="vdn")
parser.add_argument("--shuffle_obs", type=int, default=0)
parser.add_argument("--shuffle_color", type=int, default=0)
parser.add_argument("--pred_weight", type=float, default=0)
parser.add_argument("--num_eps", type=int, default=80)
parser.add_argument("--load_model", type=str, default="")
parser.add_argument("--seed", type=int, default=10001)
parser.add_argument("--gamma", type=float, default=0.99, help="discount factor")
parser.add_argument("--eta", type=float, default=0.9, help="eta for aggregate priority")
parser.add_argument("--train_bomb", type=int, default=0)
parser.add_argument("--eval_bomb", type=int, default=0)
parser.add_argument("--sad", type=int, default=0)
parser.add_argument("--num_player", type=int, default=2)
parser.add_argument("--hand_size", type=int, default=5)
# 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="Adam epsilon")
parser.add_argument("--grad_clip", type=float, default=50, help="max grad norm")
parser.add_argument("--num_lstm_layer", type=int, default=2)
parser.add_argument("--rnn_hid_dim", type=int, default=512)
parser.add_argument("--train_device", type=str, default="cuda:0")
parser.add_argument("--batchsize", type=int, default=128)
parser.add_argument("--num_epoch", type=int, default=5000)
parser.add_argument("--epoch_len", type=int, default=1000)
parser.add_argument("--num_update_between_sync", type=int, default=2500)
# DQN settings
parser.add_argument("--multi_step", type=int, default=3)
# replay buffer settings
parser.add_argument("--burn_in_frames", type=int, default=80000)
parser.add_argument("--replay_buffer_size", type=int, default=2 ** 20)
parser.add_argument(
"--priority_exponent", type=float, default=0.6, help="prioritized replay alpha",
)
parser.add_argument(
"--priority_weight", type=float, default=0.4, help="prioritized replay beta",
)
parser.add_argument("--max_len", type=int, default=80, help="max seq len")
parser.add_argument("--prefetch", type=int, default=3, help="#prefetch batch")
# thread setting
parser.add_argument("--num_thread", type=int, default=40, help="#thread_loop")
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=10)
args = parser.parse_args()
assert args.method in ["vdn", "iql"]
return args