基于深度学习和蒙特卡洛树搜索的围棋机器人.
启发:
- 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]...}