Nochi 是一个极简的 AlphaGo 引擎,它用 Keras 神经模型代替 Monte Carlo 模拟。Nochi 不会像 Michi 那样受人瞩目,但是它仍有一定的作用。
这不是一个像 AlphaGo 那样真正的「零知识」(zero-knowledge)系统,作者稍微做了一些调整。
Nochi 已经被证实能够在两周内接近 GNUGo 的水平(8500 场比赛,6 线程加一款 Tesla M60 GPU)。
用法:
首先,在脚本的开始处设定 N 的值来确定棋盘的大小,N 默认为 19.
开始训练:
代码语言:javascript复制python ./michi.py selfplay
它会自动生成一个 ID 并做周期性快照(这些数字应该乘以线程数来获得真实的局数)。要恢复成其他的模式(比如开始 gameio 或者 gtp),请将 ID 设置为:
代码语言:javascript复制python ./michi.py selfplay G171107T013304_000000150
开始游戏,你可以传递 gtp 参数并在 gogui 中启动它,或者让它用 GNUGo 玩游戏:
代码语言:javascript复制gogui-1.4.9/bin/gogui-twogtp -black 'python ./michi.py gtp G171107T013304_000000150' -white 'gnugo --mode=gtp --chinese-rules --capture-all-dead' -size 7 -komi 7.5 -verbose -auto -alternate -games 20 -sgffile x
Nochi 还支持监督训练:
代码语言:javascript复制while true; do find GoGoD-2008-Winter-Database/ -name '*.sgf' | shuf; done | python ./michi.py replay_train
用 smt 将用于位置输出的实际 MCTS 训练信号和数值监督结合起来:
代码语言:javascript复制while true; do find GoGoD-2008-Winter-Database/ -name '*.sgf' | shuf; done | python ./michi.py replay_traindist G171107T224743_R000030000
你可以用快照在自我对局、监督、监督 MCTS 中自由切换,它们之间是相互兼容的。
Github 地址:
https://github.com/rossumai/nochi