<feed xmlns='http://www.w3.org/2005/Atom'>
<title>boss/tigers-and-sheep.git/src/network.rs, branch master</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.</subtitle>
<id>https://git.tehbox.org/boss/tigers-and-sheep.git/atom/src/network.rs?h=master</id>
<link rel='self' href='https://git.tehbox.org/boss/tigers-and-sheep.git/atom/src/network.rs?h=master'/>
<link rel='alternate' type='text/html' href='https://git.tehbox.org/boss/tigers-and-sheep.git/'/>
<updated>2026-11-09T03:38:13Z</updated>
<entry>
<title>feat: Multi-threaded training; play matches every 10 generations</title>
<updated>2026-11-09T03:38:13Z</updated>
<author>
<name>Dylan</name>
<email>boss@tehbox.org</email>
</author>
<published>2026-11-09T03:38:13Z</published>
<link rel='alternate' type='text/html' href='https://git.tehbox.org/boss/tigers-and-sheep.git/commit/?id=478e7568f5eda9780d1409bb8dccc86221126281'/>
<id>urn:sha1:478e7568f5eda9780d1409bb8dccc86221126281</id>
<content type='text'>
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 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>feat: Neural network opponent trained by self-play</title>
<updated>2026-11-05T00:46:28Z</updated>
<author>
<name>Dylan</name>
<email>boss@tehbox.org</email>
</author>
<published>2026-11-05T00:46:28Z</published>
<link rel='alternate' type='text/html' href='https://git.tehbox.org/boss/tigers-and-sheep.git/commit/?id=94f3df190a91898eb344b9214a57eb31792bcb1c'/>
<id>urn:sha1:94f3df190a91898eb344b9214a57eb31792bcb1c</id>
<content type='text'>
- 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 &lt;noreply@anthropic.com&gt;
</content>
</entry>
</feed>
