AlphaGo数次击败了人类围棋高手,大家是不是摩拳擦掌,想对Alphago一探究竟。
网友brliee的作品MuGO实现了AlphaGo的策略网络(policy)和蒙塔卡罗树搜索(mcts)两大主要策略,并且能够训练自己的深度神经网络,可视化在线对弈。本文即是MuGo的实现过程,一起来看看吧。
MuGo标题镇楼:
tensorflow相较于其他深度学习框架,配置十分简单,只需在Terminal中使用pip安装指令即可
pip3 install tensorflow
python
import tensorflow as tf
hello = tf.constant('i want alphago')
sess = tf.Session()
print sess.run(hello)
sudo ./install.sh
gogui-twogtp -black 'gogui-display' -white 'gogui-display' -size 19 -komi 7.5 -verbose -auto
下载地址:https://github.com/brilee/MuGo ,下载后unzip解压即可。
如果以上均安装成功的话,那么现在就可以来跑一跑作者已经训练好了的小狗了
命令行进入MuGo-master文件夹,执行:
gogui-twogtp -black 'python3 main.py gtp policy --read-file=saved_models/20170718' -white 'gogui-display' -size 19 -komi 7.5 -verbose -auto
white加载的是交互程序,也就是你;black选手就是main.py中的plicy策略网络,运用的是saved_models文件夹下,名为20170718的训练好的数据。另外,程序实现必须用python3
执行命令后出现了棋盘,恭喜你,游戏加载成功,你可以和模仿的alphago程序一决高下了,注意:此时使用的是策略网络。
也可以将plicy改为mcts,此时运用蒙特卡洛树搜索,速度较策略网络慢一点。
以上加载已经训练好的数据,跑通了程序,但是这还不算,程序最关键的在于能够训练自己的网络,下面来训练自己的网络。
从这个网站上下载训练数据,上面有近15年的SGF格式围棋棋盘,任选一年zip格式下载,解压得到kgs开头的文件夹,删除里面的大部分,剩余30个左右文件即可(后面你就知道为啥)。
在MuGo-master文件夹下面,新建data子文件夹,把刚才解压的kgs开头的文件夹放入data中,执行预处理训练数据命令:
python main.py preprocess data/kgs-*
在MuGo-master文件夹下面,新建tmp子文件夹,用来存放训练数据。执行:
python main.py train processed_data/ --save-file=tmp/savedmodel --epochs=1 --logdir=logs/my_training_run
出现:
说明正在训练,如果你刚才没有删除训练数据中的大部分,那你估计要等上20个小时,如果你删除了大部分数据,几分钟就可以训练完毕。tmp文件夹中出现了几个名为savedmodel的文件,就是训练好的数据。注意:训练需要很久,根据棋盘数量定,一年的棋盘,用cpu训练怎么也得几天,而且,如果没有训练完毕,ctrl+c强行中断,就算出现了训练数据,也是使用不了的。我用cpu训练的时候,感觉cpu要疯,也不想等,就减少数据量仅做测试。
启动gogui引擎,加载训练好的数据,实现对弈。
gogui-twogtp -black 'python main.py gtp policy --read-file=tmp/savedmodel' -white 'gogui-display' -size 19 -komi 7.5 -verbose -auto