diff options
| author | tslil <tslil@posteo.de> | 2026-09-11 12:56:12 +0100 |
|---|---|---|
| committer | tslil <tslil@posteo.de> | 2026-09-11 17:00:18 +0100 |
| commit | 6e90f1145b2c5c0f2dcc82d21ec45432274b8cad (patch) | |
| tree | 18db1c03ea7c3c4724028fc5154d4bca3d7200a5 /include/nn.c | |
| parent | 220a4b79e4b6d742a9ca7c278a1962b870500fbc (diff) | |
move from single candidate td-leaf with gating to tournament of a population
The goal in this change was to overcome the rock-paper-scissors phenomenon that was happening in capability space by having on a single candidate learn to beat the most recent version of itself. In some sense this lead to rotating around in capability space instead of chasing monotonic improvements.
I hope that flipping to a system in which many (N=5) candidates play each other and learn from their own set of diverse games in this pool, combined with --replay-iters, will lead to a given network having to have a much more comprehensive understanding of the space of tactics. I haven't yet had time to train this thorougly, will run those experiments on my desktop computer.
Diffstat (limited to 'include/nn.c')
| -rw-r--r-- | include/nn.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/include/nn.c b/include/nn.c index 909b870..9b241a1 100644 --- a/include/nn.c +++ b/include/nn.c @@ -139,17 +139,17 @@ float eval_net(const float *board, const unsigned int n_inp, const float *w, float five_nn_fn(tak_state_p state) { static float cur_board[FIVE_INP_NUM] NN_ALIGNED; - nn_prepare_input(cur_board, state, five_embedding); - return eval_net(cur_board, FIVE_INP_NUM, &five_dense_weights[0][0], - five_dense_biases, five_logit_weights, five_logit_bias, + nn_prepare_input(cur_board, state, FIVE_embedding); + return eval_net(cur_board, FIVE_INP_NUM, &FIVE_dense_weights[0][0], + FIVE_dense_biases, FIVE_logit_weights, FIVE_logit_bias, FIVE_DENSE_NUM, state->ply & 1 ? 1.0f : -1.0f); } float six_nn_fn(tak_state_p state) { static float cur_board[SIX_INP_NUM] NN_ALIGNED; - nn_prepare_input(cur_board, state, six_embedding); - return eval_net(cur_board, SIX_INP_NUM, &six_dense_weights[0][0], - six_dense_biases, six_logit_weights, six_logit_bias, + nn_prepare_input(cur_board, state, SIX_embedding); + return eval_net(cur_board, SIX_INP_NUM, &SIX_dense_weights[0][0], + SIX_dense_biases, SIX_logit_weights, SIX_logit_bias, SIX_DENSE_NUM, state->ply & 1 ? 1.0f : -1.0f); } |
