| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
| |
Gradients and losses are computed on rayon's pool in fixed-size chunks
summed in order, so the weights are the same on any number of threads.
Self-play uses the same pool, and the output shows the training time.
The matches against the earlier network and ClaudePlayer now run only
every --match-every generations (default 10), against the generation
that last played them, read back from its saved file.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
| |
|
|
|
|
|
|
|
|
| |
A position coming up for the third time with the same side to move ends
the game as a draw, in the TUI and in training self-play. Players now get
the game's earlier boards in pick_move, and the search scores the first
repetition on its path as a draw, so a side that is ahead avoids one and
a side that is behind seeks one.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
- train --from <weights> starts from any saved network; without it,
training still carries on from the out dir's newest generation
- Each epoch takes as many positions from sheep-win games as from
tiger-win games (Config::balance_outcomes, on by default)
- Training output shows the error on tiger-win and sheep-win positions
separately, before and after training
- Fix a broken sentence in CLAUDE.md's cache description
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
|
- NeuralPlayer: a MinimaxPlayer that scores positions with a small MLP
(network.rs, hand-written backprop and Adam, no new dependencies)
- train subcommand: self-play with TD(lambda) targets, cut at random
exploration moves so sheep blunders don't bias the net towards tigers
- neural subcommand: play against a trained network
- evaluate now gets the side to move
- Board symmetries; the search cache keys by the canonical board, which
halves the depth-9 bench time with identical moves and scores
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|