Dinora is alphazero-like chess engine. It uses keras/tensorflow for position evaluation and Monte Carlo Tree Search for calculating best move.
- Working chess engine
- Minimal example of alpazero-like engine NN + MCTS
- All code included in this repo - for playing and training
- Everything written in python
You can play against Dinora in standard chess variation, with or without increment.
I assume engine strength is about 1400 Lichess Elo, I evaluate engine rating
basing on a few games against me, so it's not accurate.
You can see example game below
(10+0) Dinora (100-200 nodes in search) vs Me (2200 Rapid Lichess rating)
There is a tool for tree visualization.
Original vector images can be found at (/assets/treeviz-example/)
To generate new visualizations see
python -m dinora treeviz --help
- AlphaZero Original AlphaZero resources
- Zeta36/chess-alpha-zero First/(one of the first) open source alphazero implementation in python
- dkappe/a0lite NN + MCTS in 95 lines of python code
- Chess Wiki Good resource on chess engines in general
- int8 MCTS article Intro to MCTS blog post
- Deep Dive MCTS Another great article on MCTS
- Stockfish Strongest chess engine, used here for test / training data annotation
- Leela Chess Zero If you really want to use AlphaZero inspired chess engine this is the real one
- Pytorch Library to train neural networks
- Python chess Library for chess (rules, legal moves generator, pgn reader/writer, UCI interface)