热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

围棋AI.Sabaki+Leela+LeelaZero+AQ+Ray.2018年2月21日更新

前言随着80年代中日围棋擂台赛的开始,中国大地上兴起了围棋热,于是,从初中一年级开始,围棋成为了我的爱好之一,

前言

随着80年代中日围棋擂台赛的开始,中国大地上兴起了围棋热,于是,从初中一年级开始,围棋成为了我的爱好之一,甚至曾经为之痴迷了七八年(如果不是爱好了围棋,也许我能考上一表大学)。转眼30年过去了,自己的围棋水平基本停滞不前,在弈城围棋网6-7D,偶尔能侥幸赢一次8D。本以为自己终生也就是混迹于这个水平的圈子了,没想到这两年人工智能、大数据的发展,围棋AI竟然将人类打翻在地。得利于开源运动的兴起和传播,感谢众多的开源软件作者,我等升斗小民也能紧跟潮流,尝试一下围棋AI的滋味,俨然自己是职业棋手与围棋AI恶战一番。


相关软件介绍和下载(Windows 10 Pro 64位版本)

1、Sabaki

一个完全使用网页技术(HTML5 + Javascript)开发,由electron封装,界面漂亮的围棋应用程序。作者的中文名字好象叫沈易川。Sabaki好象是日语发音,腾挪(围棋术语)的意思。
官网地址:http://sabaki.yichuanshen.de/
Github地址:https://github.com/SabakiHQ/Sabaki

官方网站截图

 

Github上Sabaki的页面


下载地址:https://github.com/SabakiHQ/Sabaki/releases/tag/v0.33.3
在官方网站上点击“Download”就会链接到最新版的Sabaki下载地址

2018年2月11日,当下的最新版本是0.33.3


运行下载的“sabaki-v0.33.3-win-x64-setup.exe”文件,按照提示安装即可。
注意:1、最好不要安装在默认的“Program Files”文件夹下,因为随后复制其他工具时会受到权限提示;2、安装文件夹不要有空格,我开始命名文件夹含有空格,结果调用Leela GTP引擎时,报一堆js错误。
Sabaki的Theme(可以定制棋盘棋子的样式)下载地址:https://github.com/SabakiHQ/Sabaki/blob/master/docs/guides/theme-directory.md

 

2、Leela

2017年2月18日,比利时人工智能开发者Gian-Carlo Pascutto在自己的主页公开了一款围棋人工智能“Leela”,并提供免费下载。这款围棋人工智能据悉接近了职业水准。韩国职业棋手孙根气五段说:“虽然在部分死活问题上存在短板,但棋感和局面的运营接近了职业水准,尤其这款程序在普通个人电脑上运行就可达到上述的水准。”Leela在KGS计算机围棋大赛多次获得冠军(第32、38、42届),2008年在计算机奥林匹克赛上获得过九路围棋银牌和十九路围棋铜牌。现在(2018年2月11日),Leela的水平又有提高,而且衍生出Leela-Zero这一版本。
官网地址:https://www.sjeng.org/leela.html

Leela主页


Leela本身就有图形化界面的对局程序,能够实现人机对弈。Leela还提供GTP(Go Text Protocol,即围棋文本协议)功能的引擎程序。
Leela GTP引擎下载链接:https://www.sjeng.org/dl/Leela0110GTP.zip
在Leela主页选择“Leela 0.11.0 engine only”下载
将下载得到的“Leela0110GTP.zip”文件解压,确认含有“Leela0110GTP.exe”和“Leela0110GTP_OpenCL.exe”两个文件后,在Sabaki的安装文件夹下建立类似下图的文件夹。

“Leela0110GTP”就是解压后得到的文件夹

 

3、LeelaSabaki

Github地址:https://github.com/SabakiHQ/LeelaSabaki

LeelaSabaki页面

 

LeelaSabaki下载,选择“Download LeelaSabaki”

 

LeelaSabaki下载页面


将下载得到的“leelsabaki-v0.3.0-linux-macos-win-x64.7z”文件解压,将解压得到的文件夹复制到Sabaki文件夹下,如下图。

“leelsabaki-v0.3.0”就是解压后的文件夹

 

4、进入Sabaki设置GTP引擎

首先运行Sabaki应用程序,在窗口的菜单栏中选择“Engines”,选择“Manage Engines...”。

Manage Engines...


在弹出的窗口中,选择“Engines”标签,点击左下的“Add”,分别填入“Engine Name”(引擎名字,随便写)、“Path”(LeelaSabaki的路径和文件名)、“Arguments”(执行参数,还要把Leela GTP的路径和文件名带上)字段。图中下面的是已经填好的样例。完成后点击“Close”。如下图。

填好Engines的样子


LeelaSabaki的正则表达式:leelasabaki [--flat] [--heatmap] [--help]

[leela-arguments...]
在Sabaki主界面窗口的菜单栏中选择“View”,按照下图勾选。
还要勾选“Show Comments”

View的勾选样例


在Sabaki主界面窗口的菜单栏中选择“Engines”,选择“Attach...”,开始自动对局。如下图。

选择对局引擎,填写对局信息

 

成功载入引擎,我的显卡是Nvidia GeForce GTX 1050 Ti,准备对局

 

人机对弈,左边窗口是Leela GTP引擎的信息窗口,右边窗口是棋子树

 

如果想要围棋AI给你下一手的建议,在引擎设置窗口添加“--heatmap”参数,红色区域越大越浓,表示这个着点的胜率越高

 

5、后记

从下载软件到学习使用,再到写这个博客文章,前前后后花了5、6小时,希望这篇文章能给更多的棋友和棋童父母以方便,希望围棋AI程序能给更多的棋友和棋童父母以更大的帮助。如有疑问,欢迎留言共同学习。

6、补记.安装AQ引擎

2018年2月12日又试着在Sabaki上安装了一下另一个围棋GTP引擎,Github地址:https://github.com/ymgaq/AQ

AQ的Github页面


在页面中寻找这一段:

 

 

注意图中蓝色字:here


点击上图中蓝色的“here”,下载编译好的的AQ程序,链接:https://github.com/ymgaq/AQ/releases

 

AQ下载链接

 

上图中,AQ-mini_win.zip是CPU版,不需要显卡支持;AQ_win.zip是显卡版,要求Nvidia显卡的GPU CUDA capability>=3.0。看看Nvidia的显卡GPU CUDA capability吧:

 

Nvidia主流显卡GPU CUDA capability值

 

根据自己电脑的配置选择下载文件,解压到Sabaki的文件夹下,运行Sabaki,在窗口的菜单栏中选择“Engines”,选择“Manage Engines...”,点击“Add”,按照自己的文件路径写入,完成后点击“Close”。

 

添加AQ引擎

设置好AQ引擎了,进入Sabaki试试AI对抗吧。

AQ 2.1.1执黑对Leela 0.1.1.0 GTP

白中盘胜,我电脑的CPU是Intel i7 2600,显卡是Nvidia Geforce GTX 650 Ti,也许是CPU版的AQ弱一些?

7、补记.安装RN(ray)引擎

RN(ray)跟AQ引擎相似的调用方式,下载的文件里面有README.md解释参数的意思。我是在Sabaki里调用的,跟AQ一样的方法,喜欢就试试参数,比如:--thread 4。意思是使用CPU的4线程。
2018年2月18日,飞扬围棋论坛myp0001棋友提供参数参考:--thread 4 --tree-size 262144 --reuse-subtree --const-time 15
RN的Github地址:https://github.com/zakki/Ray

RN的Github页面

 

RN的Github下载地址:https://github.com/zakki/Ray/releases

RN的Github下载页面

 

8、补记.安装Leela Zero引擎.配置权重文件

Leela Zero的官方主页:http://zero.sjeng.org/
Leela Zero的Github下载地址:https://github.com/gcp/leela-zero/releases
Leela Zero的权重文件就在官方主页的下方:

Leela Zero的权重文件

Leela Zero的配置方法与Leela相似(其中的参数“-t 6”表示使用CPU的6线程;“-w 20180220.txt”表示调用名字为“20180220.txt”的权重文件;“--noponder”表示对手时间内不思考):

Leela Zero的配置方法

注意:
1、权重文件我是解压缩了的,虽然有说不用解压。
2、权重文件要放在“leelsabaki-v0.3.0”文件夹下,而不是“leela-zero-0.12”文件夹下。因为Sabaki是调用“leelasabaki-win.exe”这个文件,而不是直接调用“leelaz.exe”。
3、可以在DOS窗口,用“leelaz.exe -h”命令查看leelaz的参数说明。

leelaz的参数说明

关于棋子摆放整齐的方法

怀疑自己有轻度强迫症,面对Sabaki棋子排列不整齐的样子难受啊。于是,2018年2月12日在作者的Github上提问了这个问题,下午的时候作者(沈易川?)回复了邮件。解决方法是:菜单栏上点击“File”,再选择“Preferences...”,在弹出的窗口中,把“Fuzzy stone placement”前面的对号去掉。唉,英文不行啊!

 

选择Preferences...

 

把“Fuzzy stone placement”前面的对号去掉


推荐阅读
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
    本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
  • Google Play推出全新的应用内评价API,帮助开发者获取更多优质用户反馈。用户每天在Google Play上发表数百万条评论,这有助于开发者了解用户喜好和改进需求。开发者可以选择在适当的时间请求用户撰写评论,以获得全面而有用的反馈。全新应用内评价功能让用户无需返回应用详情页面即可发表评论,提升用户体验。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • 深度学习中的Vision Transformer (ViT)详解
    本文详细介绍了深度学习中的Vision Transformer (ViT)方法。首先介绍了相关工作和ViT的基本原理,包括图像块嵌入、可学习的嵌入、位置嵌入和Transformer编码器等。接着讨论了ViT的张量维度变化、归纳偏置与混合架构、微调及更高分辨率等方面。最后给出了实验结果和相关代码的链接。本文的研究表明,对于CV任务,直接应用纯Transformer架构于图像块序列是可行的,无需依赖于卷积网络。 ... [详细]
  • 小程序自动授权和手动接入的方式及操作步骤
    本文介绍了小程序支持的两种接入方式:自动授权和手动接入,并详细说明了它们的操作步骤。同时还介绍了如何在两种方式之间切换,以及手动接入后如何下载代码包和提交审核。 ... [详细]
  • 2016 linux发行版排行_灵越7590 安装 linux (manjarognome)
    RT之前做了一次灵越7590黑苹果炒作业的文章,希望能够分享给更多不想折腾的人。kawauso:教你如何给灵越7590黑苹果抄作业​zhuanlan.z ... [详细]
  • 本文介绍了H5游戏性能优化和调试技巧,包括从问题表象出发进行优化、排除外部问题导致的卡顿、帧率设定、减少drawcall的方法、UI优化和图集渲染等八个理念。对于游戏程序员来说,解决游戏性能问题是一个关键的任务,本文提供了一些有用的参考价值。摘要长度为183字。 ... [详细]
  • 详解 Python 的二元算术运算,为什么说减法只是语法糖?[Python常见问题]
    原题|UnravellingbinaryarithmeticoperationsinPython作者|BrettCannon译者|豌豆花下猫(“Python猫 ... [详细]
  • vue使用
    关键词: ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • 20211101CleverTap参与度和分析工具功能平台学习/实践
    1.应用场景主要用于学习CleverTap的使用,该平台主要用于客户保留与参与平台.为客户提供价值.这里接触到的原因,是目前公司用到该平台的服务~2.学习操作 ... [详细]
  • Google在I/O开发者大会详细介绍Android N系统的更新和安全性提升
    Google在2016年的I/O开发者大会上详细介绍了Android N系统的更新和安全性提升。Android N系统在安全方面支持无缝升级更新和修补漏洞,引入了基于文件的数据加密系统和移动版本的Chrome浏览器可以识别恶意网站等新的安全机制。在性能方面,Android N内置了先进的图形处理系统Vulkan,加入了JIT编译器以提高安装效率和减少应用程序的占用空间。此外,Android N还具有自动关闭长时间未使用的后台应用程序来释放系统资源的机制。 ... [详细]
  • 本文主要讨论了如何通过已知图片的base64流将图片上传到文件服务器并返回URL的问题。通过模拟文件上传过程,成功解决了该问题。然而,在返回的URL中出现了一个名为blob的文件,作者对于该文件的具体含义以及base64转blob格式的意义有所困惑。本文将对这些问题进行探讨和解答。 ... [详细]
author-avatar
额哦哦额llo
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有