예제 #1
0
    def test_rand_vs_rand(self):
        args1 = utils.hyperparameters(['--size=5', '--model=rand'])
        args2 = utils.hyperparameters(['--size=5', '--model=rand'])

        win_rate, _, _ = utils.multi_proc_play(args1,
                                               args2,
                                               self.num_games,
                                               workers=8)

        self.assertAlmostEqual(win_rate, 0.5, delta=0.1)
예제 #2
0
    def test_mctac_vs_ac(self):
        args1 = utils.hyperparameters(
            ['--size=9', '--model=ac', '--mcts=81', '--baseline'])
        args2 = utils.hyperparameters(
            ['--size=9', '--model=ac', '--mcts=0', '--baseline'])

        win_rate, _, _ = utils.multi_proc_play(args1,
                                               args2,
                                               self.num_games,
                                               workers=8)

        self.assertGreaterEqual(win_rate, 0.6)
예제 #3
0
    def test_mctval_vs_val(self):
        args1 = utils.hyperparameters(
            ['--size=7', '--mcts=128', '--temp=1', '--baseline'])
        args2 = utils.hyperparameters(
            ['--size=7', '--mcts=0', '--temp=0.05', '--baseline'])

        win_rate, _, _ = utils.multi_proc_play(args1,
                                               args2,
                                               self.num_games,
                                               workers=8)

        self.assertGreaterEqual(win_rate, 0.6)
예제 #4
0
    def test_mct_vs_rand(self):
        args1 = utils.hyperparameters([
            '--size=5', '--model=greedy', '--mcts=10', '--temp=1', '--baseline'
        ])
        args2 = utils.hyperparameters(['--size=5', '--model=rand'])

        win_rate, _, _ = utils.multi_proc_play(args1,
                                               args2,
                                               self.num_games,
                                               workers=8)

        self.assertGreaterEqual(win_rate, 0.6)
예제 #5
0
    def test_checkpoint(self):
        args1 = utils.hyperparameters([
            '--size=5', '--depth=0', '--temp=0.1',
            '--customdir=bin/checkpoints/2020-01-20/'
        ])
        args2 = utils.hyperparameters(
            ['--size=5', '--depth=0', '--temp=0.1', '--baseline'])

        win_rate, _, _ = utils.multi_proc_play(args1,
                                               args2,
                                               self.num_games,
                                               workers=8)

        self.assertGreaterEqual(win_rate, 0.6)
예제 #6
0
    def test_smartgreed_vs_greed(self):
        args1 = utils.hyperparameters([
            '--size=5', '--model=smartgreedy', '--depth=0', '--temp=0.1',
            '--baseline'
        ])
        args2 = utils.hyperparameters([
            '--size=5', '--model=greedy', '--depth=0', '--temp=0.1',
            '--baseline'
        ])

        win_rate, _, _ = utils.multi_proc_play(args1,
                                               args2,
                                               self.num_games,
                                               workers=8)

        self.assertGreaterEqual(win_rate, 0.6)
예제 #7
0
        go_env.reset()
        for a in traj.actions:
            greedy_actions = []
            for policy in policies:
                pi = policy(go_env)
                greedy_actions.append(np.argmax(pi))
            all_greedy_actions.append(greedy_actions)

            go_env.step(a)

    queue.put(np.array(all_greedy_actions, dtype=int))


if __name__ == '__main__':
    all_args = []

    for arg_str in arg_strs:
        args = utils.hyperparameters(arg_str.split())
        all_args.append(args)

    _, _, replay = utils.multi_proc_play(all_args[0], all_args[0], 16)

    greedy_actions = evaluate_greedy_actions(all_args, replay)

    best_actions = greedy_actions[:, -1]
    stats_str = ''
    for i in range(len(all_args) - 1):
        agreement = np.mean(greedy_actions[:, i] == best_actions)
        stats_str += (f'{100 * agreement:.1f}% ')
    print(stats_str)