基于深度学习和蒙特卡洛树搜索的围棋机器人.
启发:
- Alpha Zero, Deep Mind https://deepmind.google/discover/blog/alphazero-shedding-new-light-on-chess-shogi-and-go/
- Deep Learning and the Game of Go, Kevin Ferguson and Max Pumperla https://github.com/maxpumperla/deep_learning_and_the_game_of_go
- Leela Zero, Leela Zero Team https://github.com/leela-zero/leela-zero
在根目录执行
python setup.py以编译 C 扩展.
python main.py play -c CONF将依照配置文件启动棋局. 配置文件可修改棋局信息(如棋盘尺寸, 贴目等), 双方代理(如人类棋手, 传统随机蒙特卡洛树搜索算法bot等), 使用的 GUI等等. 具体可以参考 conf/main/.
python main.py create -c CONF -p PATH将按照配置文件创建模型. 具体可以参考 conf/model/.
python -O main.py train -m [MODEL ROOT] -d [DATASET ROOT] -c CONF将开启训练, 具体可参考 conf/train/.
使用
python main.py --help查看更多细节.
检查 docs/ 查看博客文档.
- 程序在不同环境执行时, 可能存在不明原因的内存泄露. 该行为依操作系统及库版本等依赖而异, 无法稳定复现, 且检查后几乎可以肯定不来自项目本身. 若存在此现象, 请尝试使用项目根目录的
guard脚本守护训练进程, 它会在守护进程被挂掉后尝试以同样命令重新拉起. 其使用方法为
./guard [COMMAND] {[ARGS]...}
# 对应直接执行 [COMMAND] {[ARGS]...}