Leela-Zero在Windows10和macOS11下安装

一、 下载Sabaki和Leela Zero最新版本

  1. 下载 Sabaki

下载的程序先放到这个目录
cd /D E:\develope\c\c++_game\

https://github.com/SabakiHQ/S... ( https://github.com/SabakiHQ/L... 这个是旧版leela所用 )
https://github.com/SabakiHQ/S...
https://github.com/SabakiHQ/S...

下载v0.33.4的,因为v0.51.1好像有点问题

  1. leela-zero代码下载:

cd /D E:\develope\c\c++_game\

https://github.com/gcp/leela-... ( https://github.com/leela-zero... )
https://github.com/leela-zero...

另外,有兴趣也可以下载leelasabaki尝试 ( 在本项目中用不上,可以不用下载),
【】里面的内容可以忽略,其实就是增加了一个leela引擎(但是leela引擎比leela-zero弱,因此可以不用下载)
【 如有兴趣: 参照 https://www.jianshu.com/p/c44... (2018.02.11文章)里面说的,

  (1)当前下载的是:leelasabaki-v0.2.0
           https://github.com/SabakiHQ/LeelaSabaki/releases/download/v0.2.0/leelasabaki-v0.2.0-linux-macos-win-x64.7z  
         将 leelasabaki-v0.2.0-linux-macos-win-x64 整个目录剪切到 
         C:/AI_game/Sabaki/leelasabaki-v0.2.0-linux-macos-win-x64/

  (2)还要下载:Leela GTP引擎下载链接:https://www.sjeng.org/dl/Leela0110GTP.zip  
    ( 将下载得到的“Leela0110GTP.zip”文件解压,确认含有“Leela0110GTP.exe”和“Leela0110GTP_OpenCL.exe”两个文件),
       将目录剪切到这里:
        C:/AI_game/Sabaki/Leela0110GTP/

 (3) 配置引擎的时候,参数如下:
比如,

名称:Leela0110GTP
路径:C:/AI_game/Sabaki/leelasabaki-v0.2.0-linux-macos-win-x64/leelasabaki-win.exe
参数:--flat C:/AI_game/Sabaki/Leela0110GTP/Leela0110GTP_OpenCL.exe
初始化命令:

     详细的参数内容,也可以在cmd窗口下(win+R,输入cmd回车) ,执行: 
     C:/AI_game/Sabaki/leelasabaki-v0.2.0-linux-macos-win-x64/leelasabaki-win.exe --help
     

实测,在Sabaki0.33.4上可以作为引擎运行,

二、安装Sabaki
之前在 《PhoenixGo-围棋人工智能.txt》中已经安装了,直接双击 sabaki-v0.33.4-win-x64-setup.exe , 安装到:
C:\AI_game\Sabaki\ 目录下

三、安装leela zero 并获取权重文件

1.  将leela-zero-0.17-cpuonly-win64.zip 解压缩到 E:\develope\c\c++_game\leela-zero-0.17-cpuonly-win64 ,就是安装好了。

获取权重文件 (有两种方式)

   应该有 autogtp.exe ,  leelaz.exe 等exe程序(这两个程序后面要用)


2.  方法1:生成权重文件,(似乎失败,放弃此方法,采用第二种下载权重文件的方式)

进入此解压目录,直接运行autogtp.exe,
cd /D E:\develope\c\c++_game\leela-zero-0.17-cpuonly-win64
autogtp.exe

AI程序将检测电脑配置并进行自对弈,运行一段时间后会生成一个networks文件夹,其中的文件就是权重文件压缩包
Ctrl+C停止程序,打开networks文件夹,将权重文件压缩包解压缩,得到一个txt文件,重命名比如weights.txt,
复制到leela zero安装目录,这里是:E:\develope\c\c++_game\leela-zero-0.17-cpuonly-win64

但是这里一直报错:
E:\develope\c\c++_game\leela-zero-0.17-cpuonly-win64>autogtp.exe
AutoGTP v18
Using 1 game thread(s) per device.
Starting tuning process, please wait...
Network connection to server failed.
NetworkException: JSON parse error: illegal value
Retrying in 30 s.

3.  方法2:下载权重文件,

权重文件压缩包也可下载:
【 这是旧版网站,新版本网站,已经迁移到 leela.online-go.com
http://zero.sjeng.org/, 向下浏览至Best Network Hash表格,其中的Hash文件就是权重文件包,比如
http://zero.sjeng.org/network...

 新版网站,

https://zero.sjeng.org/ 找到“Raw SGF files”
点击进入: https://leela.online-go.com/z...

3.1)文件说明:( https://leela.online-go.com/zero/  目录下的 )
    1) all_match.sgf.xz  文件大小约296M,解压后是一个2G多的all_match.sgf 文件,可以在Sabaki中打开 ,(按照暗点提示,跟着点击就是复盘,能看到电脑怎么下的 )
          不知道是版本问题(电脑安装的0.33.4版)还是文件太大,Sabaki中 File ==> Open... (或Ctrl+O) ,载入该sgf文件后,没有反应,文件路径:
          E:\BaiduNetdiskDownload\all_match.sgf  (Sabaki对局保存后,后缀就是sgf)

    2) tfsummary.tar.xz  文件解压后是26G的1071个train 日志文件和1071个test文件,如:  events.out.tfevents.1557822313.beast 
          每个文件都是约42M的二进制文件;
    3) best_v1.txt.zip , 7.8M大小,解压后是一个22M的txt文件,一堆数字,
            将该文件放到 leela-zero-0.17-cpuonly-win64 目录下,备用,添加引擎的时候,需要这个txt文件的路径:
             E:/develope/c/c++_game/leela-zero-0.17-cpuonly-win64/best_v1.txt/weights.txt

    4) all_1M.sgf.xz ~ all_22M.sgf.xz  未下载,估计跟all_match.sgf.xz,类似,就是sgf文件,可以在Sabaki中打开

3.2) 还有训练文件 ,https://leela.online-go.com/training/  
      (都是.zip文件,每个压缩包都几百兆,还有几个G的)
      下载了一个 train_0255d914.zip文件(374M)查看,解压后,发现是 train_0255d914_0.gz  ~  train_0255d914_296.gz 的文本压缩文件(每个gz文件1M多),
       随便解压一个文件train_0255d914_1.gz,就看到 16M大小的文本文件,内容类似于 best_v1.txt/weights.txt 文件。

四、Sabaki配置leela zero引擎

运行Sabaki软件: 双击C:\AI_game\Sabaki\ 目录下的 Sabaki.exe,
在菜单栏(如果没有菜单,按Alt调出菜单),Engines ==> Mange Engines...   ==> Add ==> <输入名称和引擎路径>  ( 选引擎,选引擎管理,选添加,添加leela zero引擎 )

比如,

名称:leelazero
路径:E:/develope/c/c++_game/leela-zero-0.17-cpuonly-win64/leelaz.exe
参数:-g -t 1 --noponder -w E:/develope/c/c++_game/leela-zero-0.17-cpuonly-win64/best_v1.txt/weights.txt
初始化命令:time_settings 0 30 1
详细的参数内容,请百度一下,我也不是很清楚, E:/develope/c/c++_game/leela-zero-0.17-cpuonly-win64/leelaz.exe --help
(也可以在cmd窗口下(win+R,输入cmd回车) ,执行: E:\develope\c\c++_game\leela-zero-0.17-cpuonly-win64>E:/develope/c/c++_game/leela-zero-0.17-cpuonly-win64/leelaz.exe --help 查看说明)

注:参数写错了可能导致不能自动下棋(报错: connection error),参数也可写成:(--gtp是2个--,不要少了)
--gtp -t2 -v1000 --noponder -w E:/develope/c/c++_game/leela-zero-0.17-cpuonly-win64/best_v1.txt/weights.txt

五、Sabaki参数配置
打开菜单,File ==> Preferences... 选偏好设置,勾选下面三个选项:
在棋盘上即时显示分析变化
附加引擎后立即开始对局
引擎自动生成走法
打开菜单,选显示,勾选: 显示棋局树
简单配置完成,详细配置,请自行摸索,如果是后续版本,有汉化语言包,languages选简体中文

六、与AI对弈
关闭Sabaki重新打开
Crtl+N建立新对局,点开白棋右边的箭头选择刚设置的引擎,比如leelazero,按确认开始对局
Leela Zero将自动对局(黑棋先下),专业N段赔你下棋
棋盘左边显示AI运行说明,右侧显示对局树和胜率图
对弈中,可以按下F4,或者F5、F10,有惊喜
可悔棋,可随时认输,或关闭程序

注:之前参数写错了,写成了:-gtp(只有一个-,应该是--gtp),错误的参数导致报错,不能自动下棋
但是显示:
leelazero> genmove B
connection error

七、 cpu使用

1. 两个AI对弈,cpu一直处于高消耗状态

如果设置了2个leelazero,leelazero2, 对弈的时候黑白棋选择的引擎都是分别是leelazero,leelazero2 ,电脑风扇一直狂转, 电脑cpu一直处于高消耗状态

2. 人机对战,消耗并不那么大,

相比 PhoenixGo,CPU消耗更小,更流畅

======== 二、 macOS下安装 ========

类似windows10的安装,我们也按照如下步骤:

一、 下载Sabaki和Leela Zero最新版本

  1. 下载 Sabaki

下载的程序先放到这个目录 ( 之前已经下载过了 )
cd ~/develope/c/c_lang_dev/c++_game/

  1. leela-zero代码安装:

官方文档: https://github.com/leela-zero...
由于 brew install leela-zero 报错失败,(懒得折腾), ( 但是文件依然生成了 ,/usr/local/Cellar/leela-zero/0.17/bin/leelaz )
因此采用编译的方式:

cd ~/develope/c/c_lang_dev/c++_game/

Example of compiling - macOS

Clone github repo

git clone [email protected]:leela-zero/leela-zero.git
cd leela-zero
git submodule update --init --recursive
( 报错了, 但是后面依然可以执行 )

Install build depedencies

brew install boost cmake zlib

Use a stand alone build directory to keep source dir clean

mkdir build && cd build

Compile leelaz and autogtp in build subdirectory with cmake

cmake ..
cmake --build .

Optional: test if your build works correctly

./tests

看到成功运行;

另外,有兴趣也可以尝试leela(非zero,可能没有zero强大,见后面),

二、安装Sabaki
之前在 《PhoenixGo-围棋人工智能.txt》中已经安装了!

安装的v0.33.4的,(暂未测试macbook上的 v0.51.1是否好用 )

三、安装leela zero 并获取权重文件

1. 经过上面编译,应该就安装好了。

程序位于: ~/develope/c/c_lang_dev/c++_game/leela-zero/build/

   该目录下有 leelaz 程序(这个程序后面要用)

但是没有 autogtp 程序 或目录,可能是上面报错导致 autogtp 没有生成;

2. 构建 (TODO 上面没有生成 autogtp 目录,因此这两步无法进行)

将leelaz二进制文件复制到autogtp子目录 , Copy leelaz binary to autogtp subdirectory

cp leelaz autogtp

Run AutoGTP to start contributing

./autogtp/autogtp

3.  下载权重文件,

权重文件压缩包也可下载:
【 这是旧版网站,新版本网站,已经迁移到 leela.online-go.com
http://zero.sjeng.org/, 向下浏览至Best Network Hash表格,其中的Hash文件就是权重文件包,比如
http://zero.sjeng.org/network...

下载地址:( windows上已经下载过了 )
https://leela.online-go.com/z...

mv /Users/cf/Downloads/leelaZero/best_v1.txt /Users/cf/develope/c/c_lang_dev/c++_game/leela-zero/build/best_v1.txt

四、Sabaki配置leela zero引擎

运行Sabaki软件: 
在菜单栏(如果没有菜单,按Alt调出菜单),Engines ==> Mange Engines...   ==> Add ==> <输入名称和引擎路径>  ( 选引擎,选引擎管理,选添加,添加leela zero引擎 )

比如,

名称:LeelaZero
路径:/Users/cf/develope/c/c_lang_dev/c++_game/leela-zero/build/leelaz
参数:--gtp -t1 -v1000 --noponder -w /Users/cf/develope/c/c_lang_dev/c++_game/leela-zero/build/best_v1.txt/weights.txt
初始化命令:time_settings 0 30 1
详细的参数内容,请百度一下,我也不是很清楚,

或者执行: /Users/cf/develope/c/c_lang_dev/c++_game/leela-zero/build/leelaz --help  

注:参数写错了可能导致不能自动下棋(报错: connection error),参数也可写成:(--gtp是2个--,不要少了)
--gtp -t2 -v1000 --noponder -w /Users/cf/develope/c/c_lang_dev/c++_game/leela-zero/build/best_v1.txt/weights.txt
-g -t 1 --noponder -w /Users/cf/develope/c/c_lang_dev/c++_game/leela-zero/build/best_v1.txt/weights.txt

五、Sabaki参数配置
打开菜单,File ==> Preferences... 选偏好设置,勾选下面三个选项:
在棋盘上即时显示分析变化
附加引擎后立即开始对局
引擎自动生成走法
打开菜单,选显示,勾选: 显示棋局树
简单配置完成,详细配置,请自行摸索,如果是后续版本,有汉化语言包,languages选简体中文

六、与AI对弈
关闭Sabaki重新打开
Crtl+N建立新对局,点开白棋右边的箭头选择刚设置的引擎,比如leelazero,按确认开始对局
Leela Zero将自动对局(黑棋先下),专业N段赔你下棋
棋盘左边显示AI运行说明,右侧显示对局树和胜率图
对弈中,可以按下F4,或者F5、F10,有惊喜
可悔棋,可随时认输,或关闭程序

在Sabaki v0.33.4和v0.51.1两个版本上好像运行都不成功。 -- 不知道原因;但是其他引擎可以运行(PhoenixGo和Leela0110GTP两个都能运行)

==== 另,附加测试leela引擎 (成功)
leela早期版本,没有leela-zero强大;

  1. 增加了一个leela引擎(但是leela引擎比leela-zero弱,因此可以不用下载,这里纯属爱好,调试一些
    如有兴趣: 参照上面windows上的安装即可成功。

    (1)当前下载的是:leelasabaki-v0.2.0
             https://github.com/SabakiHQ/LeelaSabaki/releases/download/v0.2.0/leelasabaki-v0.2.0-linux-macos-win-x64.7z  
           将 leelasabaki-v0.2.0-linux-macos-win-x64 整个目录剪切到 
           mv ~/Downloads/leelaZero/leelasabaki-v0.2.0-linux-macos-win-x64 /Users/cf/develope/c/c_lang_dev/c++_game/leelasabaki-v0.2.0-linux-macos-win-x64
           赋予可执行权限:
           chmod +x /Users/cf/develope/c/c_lang_dev/c++_game/leelasabaki-v0.2.0-linux-macos-win-x64/leelasabaki-macos
    
    (2)还要下载:Leela GTP引擎下载链接:https://www.sjeng.org/dl/Leela0110GTP.zip  
      ( 将下载得到的“Leela0110GTP.zip”文件解压,确认含有“leela_0110_macOS”和“leela_0110_macOS_opencl”两个文件),
         将目录剪切到这里:
          mv ~/Downloads/leelaZero/Leela0110GTP  /Users/cf/develope/c/c_lang_dev/c++_game/Leela0110GTP
          赋予可执行权限:
           chmod +x /Users/cf/develope/c/c_lang_dev/c++_game/Leela0110GTP/leela_0110_macOS_opencl
           chmod +x /Users/cf/develope/c/c_lang_dev/c++_game/Leela0110GTP/leela_0110_macOS    
          
     (3) 配置Sabaki引擎的时候,参数如下:

    比如,

名称:Leela0110GTP
路径:/Users/cf/develope/c/c_lang_dev/c++_game/leelasabaki-v0.2.0-linux-macos-win-x64/leelasabaki-macos
参数:--flat /Users/cf/develope/c/c_lang_dev/c++_game/Leela0110GTP/leela_0110_macOS_opencl
初始化命令:

     详细的参数内容,也可以在cmd窗口下(win+R,输入cmd回车) ,执行: 
     /Users/cf/develope/c/c_lang_dev/c++_game/leelasabaki-v0.2.0-linux-macos-win-x64/leelasabaki-macos --help
     
    (4)  实测,在Sabaki0.33.4上可以作为引擎运行,

下期速度很快,估计战力没有其他引擎强大

你可能感兴趣的:(c++人工智能)