本博文使用的是GitHub上的MuGo开源程序,使用的是纯Python语言,主要是AlphaGo的一个复制的版本。项目的地址请看后面的参考文献部分。

AlphaGo主要使用了三个神经网络,即第一个速度缓慢但是准确的蒙特卡洛搜索树,主要用来预测人来的棋子的移动。第二个主要是小的一个策略网络但是速度很快。第三个是一个价值网络,只是用来计算胜率的不能用来预测棋子的移动。具体的看下面参考文献列出来的Google的paper。

废话了这么多,下面我们就开始操作纯Python版的简易AlphoGo吧。

2. 下载SGF文件并且预处理,可以在这个网址上面下载最近15年的围棋文件:https://u-go.net/gamerecords/

3. 预处理SGF文件,在与处理的时候可能会提示缺少例如sgf 包,gtp包之类的,用pip对应的安装上去就可以了。

python main.py preprocess ~/kgs-19-2016-12-new/

这里的 ~/kgs-19-2016-12-new/ 的意思是我上面下载下来的SGF文件,用unzip解压之后的文件夹为 kgs-19-2016-12-new, 里面的文件就是 以sgf结尾的文件。

4. 用策略网络来监督学习

python main.py train processed_data/ --save-file=/tmp/savedmodel --epochs=400 --logdir=logs/my_training_run

当上面的训练步骤结束之后,网络的模型就会被保存在save-file对应的文件夹之中,在训练过程中,当然也可以开启TensorFlow的TensorBoard来查看训练的过程。

tensorboard --logdir=logs/

5. 在训练完之后就可以来玩围棋了

如果要使用原始的策略网络,使用下面的命令

python main.py gtp policy --read-file=/tmp/savedmodel

如果使用蒙特卡洛搜索树,使用下面的命令

python main.py gtp mcts --read-file=/tmp/savedmodel

gogui-twogtp -black 'python main.py gtp policy --read-file=/tmp/savedmodel' -white 'gogui-display' -size 19 -komi 7.5 -verbose -auto

还有一种可以可视化下围棋的方法是使用GnuGo

BLACK="gnugo --mode gtp"

WHITE="python main.py gtp policy --read-file=/tmp/savedmodel"

TWOGTP="gogui-twogtp -black \"$BLACK\" -white \"$WHITE\" -games 10 \

-size 19 -alternate -sgffile gnugo"

gogui -size 19 -program "$TWOGTP" -computer-both -auto

———–EOF————

参考文献:

https://github.com/brilee/MuGo

http://www.nature.com/nature/journal/v529/n7587/full/nature16961.html   (Mastering the game of Go with deep neural networks and tree search)

https://arxiv.org/abs/1412.6564  (Move Evaluation in Go Using Deep Convolutional Neural Networks)

python alphago_使用 Python 搭建简易版AlphaGo相关推荐

  1. CDH5.15离线搭建简易版集群(完整版)

    运用CDH5.15离线搭建简易版集群 关于CDH和Cloudera CDH(Cloudera的发行版,包括Apache Hadoop),是Hadoop众多分支中的一种,由Cloudera维护,基于稳定 ...

  2. python球球大作战简易版详解

    在玩很多游戏的时候,我们可以发现游戏里面的世界很大,但是整个窗口却最大不过我们屏幕大小,为了观察到整个世界,我们的视角窗口就会随着里面人物的移动不断的移动. 比如说游戏球球大作战,在玩这款游戏的时候我 ...

  3. Python使用socketServer包搭建简易服务器过程详解

    官方提供了socketserver包去方便我们快速的搭建一个服务器框架. 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手. 很多已经做案 ...

  4. python连接MySQL数据库搭建简易博客

    实现功能大概 将python和MySQL数据库交互进行 封装 --->>utils.py 文件程序 ---->blog.py # -*- coding: utf-8 -*- # @T ...

  5. python开发web服务器——搭建简易网站

    转自:http://blog.csdn.net/baidu_35085676/article/details/69807145?%3E 目标 用已有的丰富图片资源建一个看图网站 条件 开发语言: py ...

  6. 14级团队学习成果汇报 -- 利用express+socket.io搭建简易版聊天室

    周鹏,14级数理系,信息与计算科学大三学生.在LSGO软件技术团队负责前端部分,本图文是他的一个完整作品,代码可在Github上下载.

  7. 小案例:搭建简易版王者荣耀英雄购买商城网页版

    目录 一.网页赏析: 二.代码分三部分: 1.html代码: 2.main.css赏析: 3.初始化reset.css代码: 三.主要素材下载地址: 一.网页赏析: 二.代码分三部分: 1.html ...

  8. DjangoChannels_vue前端搭建简易版的网页聊天功能

    django网页聊天 效果 redis安装 redis连接 channel模块的安装引用 验证channels vue前端访问 效果 链接:http://yongma16.xyz:/#/onlinew ...

  9. python前景-学习Python发展前景如何

    学习Python发展前景如何 来源:教育联展网 编辑:青 发布时间:2018-01-30 学习Python发展前景如何 为什么Python值得你选择 Python语言火爆全球 1.Python是世界排 ...

  10. 用Python实现人工神经网络(简易版)

    人工神经网络 人工神经网络简介 代码 神经网络的缺点 程序优化 BP算法 补充 人工神经网络简介 人工神经网络(Artificial Neural Network, ANN)是指一系列受生物学和神经学 ...

最新文章

  1. BZOJ3166 [Heoi2013]Alo 【可持久化trie树 + 二分 + ST表】
  2. Python中lxml库的安装(Windows平台)
  3. 数据通信技术(十一:无中继的DHCP配置(ZTE))
  4. Vue 爬坑之路(六)—— 使用 Vuex + axios 发送请求
  5. 看 nova-scheduler 如何选择计算节点 - 每天5分钟玩转 OpenStack(27)
  6. webrtc rtsp播放
  7. C语言-求字符串长度-strlen()与sizeof()
  8. Windows驱动开发VXD/WDM/WDF/DDK/WDK的联系和区别
  9. 行末没有空格c语言,新人提问:如何将输出时每行最后一个空格删除
  10. 别人运行的好好的R代码,到我这怎么就冲突了?
  11. mysql 2049_mysql数据库备份与还原,解决40101和ERROR 2049错误
  12. 微信小程序的组件 component开发,提高效率第三篇
  13. Unix 文件和目录
  14. 使用HTML5 Canvas API中的clip()方法裁剪区域图像
  15. 利用矩阵快速幂求解斐波那契数列
  16. iOS 定位和地图
  17. 音乐机器人特奥_意大利机器人特奥·特罗尼科征服中国观众 Il Robot italiano conquista la Cina...
  18. php图片素描化,把照片做成素描效果 照片做成素描
  19. Linux命令----压缩解压缩
  20. C语言 - 隐式类型转换

热门文章

  1. [大数据]黑马hadoop学习笔记一
  2. 登录注册HTML页面代码
  3. 2022年最全公关活动策划案例(共14份)
  4. SpringBoot(尚硅谷)
  5. x5内核有什么优点_腾讯X5内核引擎
  6. 深度学习在58同城首页推荐中的应用
  7. 苹果鼠标右键怎么按_UG经验技巧案例17把UG命令设置到Shift+Ctrl+鼠标的左、中、右三键及右键长、按右键的方法...
  8. 从单个静止图像进行 3d 深度重建(论文2007)
  9. SPSS基础操作详解---系统环境设置篇
  10. Kali linux 全部版本镜像下载