Skip to content

Lozza 4.0

Choose a tag to compare

@op12no2 op12no2 released this 14 Oct 08:26
· 42 commits to main since this release

A bigger 768 → 128 → 1 SReLU network (still white-relative) trained on self-generated data using a DIY Javascript pipeline: datagen.js → filter.js → trainer.js. Includes the 3.1–3.16 development builds listed below.

Originally released with the weights in a separate .bin file; re-released on 6 Jan 2025 with the weights inlined into lozza.js again after users reported problems. Same strength.

Changes

  • Minor tweaks for datagen + net command. (3.1)
  • Defer UE to after legal check (doh!) and don't check pre-determined legal moves. (3.2)
  • Make sure all UE updates (inc. castling etc) are a single accumulator loop. (3.3)
  • Bigger net 768x128x1 srelu. (3.4)
  • Allow successive NMP and beta pruning. (3.5)
  • Simplify search recursion. (3.6)
  • Optimise castling a bit. (3.7)
  • Put eval in TT before search. (3.8)
  • Prune QS with quickSee(). Only count nodes that iterate moves. (3.9)
  • Fix some web stuff. Add improving indicator. (3.10)
  • Optmise deferral of h1 accumulator update a bit more. (3.11)
  • Use hash move in q search. (3.12)
  • Move futility alpha test to move loop. (3.13)
  • Use the Mersene Twister from Cwtch for randoms. (3.14)
  • Load net from the .bin file created by trainer.js. (3.15)
  • Add perspective (currently unused). (3.16)

Rating

CCRL 40/40: 2968 · CCRL Blitz: 2900

Usage

Use lozza.js with Node.js in any UCI chess GUI (Arena, Cute Chess, etc.), or in a web page/web worker.

Binaries

While Lozza is intended for web use, I can supply binaries on request. Please email me op12no2@gmail.com noting the target platform; thanks.