aboutsummaryrefslogtreecommitdiff
path: root/include/nn.c
diff options
context:
space:
mode:
authortslil <tslil@posteo.de>2026-09-11 12:56:12 +0100
committertslil <tslil@posteo.de>2026-09-11 17:00:18 +0100
commit6e90f1145b2c5c0f2dcc82d21ec45432274b8cad (patch)
tree18db1c03ea7c3c4724028fc5154d4bca3d7200a5 /include/nn.c
parent220a4b79e4b6d742a9ca7c278a1962b870500fbc (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.c12
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);
}