众多棋友都很好奇,究竟如何在自己个人电脑上配置属于自己的丽拉?希望这篇文章能为对计算机不甚了解的棋友,提供一些帮助。
1.下载相关文件
①Leela Zero: https://github.com/gcp/leela-zero
这是Leela的作者GCP在Github上提交的源文件(如果对计算机比较了解的朋友,看GCP的readme应该就能自己配置好了)。进入网页,通过绿色的download键,把压缩包下载至自己的电脑。
②LeelaSabaki: https://github.com/SabakiHQ/LeelaSabaki
同理,下载压缩包并解压。
③Sabaki: https://github.com/SabakiHQ/Sabaki/releases/tag/v0.33.4
Sabaki是一个帮助完成交互的围棋软件,链接内提供了多个操作系统下的安装包,此文默认为使用windows系统。
④Leela权重文件: 权重文件的链接可在①的readme中找到(http://zero.sjeng.org/best-network),直接下载即可。把下载好的权重文件(txt格式)放在②文件的相同根目录下。
- 编译Leela
首先需要对下载的①文件进行编译,作者提供了windows下使用Visual Studio 2015/2017编译的project文件(没有安装VS的朋友需要自行下载)。工程文件的下载路径如下 F:\Weiqi\Leela\leela-zero-master\msvc (前面的路径自行调整)
编译过程中值得注意的是,我起初一直使用debug模式编译,经常会出问题,最后使用了release模式编译。源文件是没有问题的,如果编译出错大概率是自己电脑内缺少了一些文件,自行百度即可解决问题。
如果编译成功,会在文件夹F:\Weiqi\Leela\leela-zero-master\msvc\x64\Release 下生成一个.exe文件,这就是我们需要在sabaki内添加的引擎之一。
- 配置路径
打开Sabaki,Engines -> Manage Engines,把我们的Engine路径添加进去即可。如下图所示:
第一行是用户自己给它起的名称,可随意。
第二行是leelasabaki的路径。
第三行是leela zero的路径和权重,按照自己电脑内的路径调整即可。我的路径如下:
–heatmap F:\Weiqi\Leela\leela-zero-master\msvc\x64\Release\leelaz.exe -w weight.txt –playouts 100 –noponder
- 开始游戏
在Sabaki内 File -> New, 开始一局棋,可以选择黑白使用的Engine,设置为Leela即可。
Generic options: -h [ --help ] Show commandline options. -g [ --gtp ] Enable GTP mode. -t [ --threads ] arg (=0) Number of threads to use. Select 0 to let leela-zero pick a reasonable default. -p [ --playouts ] arg Weaken engine by limiting the number of playouts. Requires --noponder. -v [ --visits ] arg Weaken engine by limiting the number of visits. -b [ --lagbuffer ] arg (=100) Safety margin for time usage in centiseconds. -r [ --resignpct ] arg (=-1) Resign when winrate is less than x%. -1 uses 10% but scales for handicap. -w [ --weights ] arg (=D:\Leela Zero\iGORobot\iGORobot\iGORobot\best-network) File with network weights. -l [ --logfile ] arg File to log input/output to. -q [ --quiet ] Disable all diagnostic output. --timemanage arg (=auto) [auto|on|off|fast|no_pruning] Enable time management features. auto = no_pruning when using -n, otherwise on. on = Cut off search when the best move can't change, but use full time if moving faster doesn't save time. fast = Same as on but always plays faster. no_pruning = For self play training use. --noponder Disable thinking on opponent's time. --benchmark Test network and exit. Default args: -v3200 --noponder -m0 -t1 -s1. --cpu-only Use CPU-only implementation and do not use OpenCL device(s). OpenCL device options: --gpu arg ID of the OpenCL device(s) to use (disables autodetection). --full-tuner Try harder to find an optimal OpenCL tuning. --tune-only Tune OpenCL only and then exit. --batchsize arg (=0) Max batch size. Select 0 to let leela-zero pick a reasonable default. --precision arg Floating-point precision (single/half/auto). Default is to auto which automatically determines which one to use. Self-play options: -n [ --noise ] Enable policy network randomization. -s [ --seed ] arg Random number generation seed. -d [ --dumbpass ] Don't use heuristics for smarter passing. -m [ --randomcnt ] arg (=0) Play more randomly the first x moves. --randomvisits arg (=1) Don't play random moves if they have <= x visits. --randomtemp arg (=1) Temperature to use for random move selection.