Adament Cabin

  • 计算机
    • Algorithm
    • Linux
    • Problems
    • AI
  • 日语学习
  • ACG
    • 追番列表
    • 游戏
  • 常日说
  • 杂物
    • 资料
    • 资源
    • 治疗中心
  • ao的链接
  • 分站
  • Chinese
    • Japanese
Adament Cabin
恋厨综合症第二治疗中心
  1. 首页
  2. 计算机
  3. AI
  4. 正文

Katago SelfTraining 自我训练生成模型

2023年5月2日 1632点热度 0人点赞 0条评论

对于这个世界上最古老的棋盘游戏之一,人类已经达到了巅峰。但是现在,通过人工智能,我们正在不断地挑战人类的极限。

作为一种新兴的围棋AI,Katago已经在围棋领域中引起了广泛关注和探讨。通过结合深度学习技术和蒙特卡罗树搜索,Katago在围棋比赛中展现出了前所未有的高水平,甚至在某些情况下超过了AlphaGo。而且,Katago的开源代码也吸引了大量围棋爱好者和开发者的兴趣,他们使用Katago进行自我对弈和改进,进一步提高了Katago的棋力。

Katago是一个开源的围棋AI,由David Wu和他的团队开发。它使用深度学习技术,包括卷积神经网络和蒙特卡罗树搜索,以最先进的水平在围棋比赛中击败人类。Katago的算法和代码已经公开发布,并且被广泛用于围棋教学、比赛和研究。通过使用自我对弈和强化学习,Katago不断改进和提高自己的棋力,是一个非常有潜力的AI项目。

最近,我有机会使用Katagomo进行训练,并成功地创建了一个新的围棋AI模型。在本篇博客文章中,我将分享我的经验和过程,以及一些有关Katago的基础知识和使用技巧。

虽然我成功创建了一个模型,但是可能依然有很多错误。因为我还是一个学习者。如果你发现了这篇文章中的错误,请在评论区指出来。谢谢你的理解!

Katago-Github:https://github.com/lightvector/KataGo

Katagomo-Github:https://github.com/hzyhhzy/KataGo

Compiling.md:https://github.com/lightvector/KataGo/blob/master/Compiling.md

SelfplayTraining.md:https://github.com/lightvector/KataGo/blob/master/SelfplayTraining.md

CMake Download:https://cmake.org/download/

Cuda Download:https://developer.nvidia.com/cuda

Cudnn Download:https://developer.nvidia.com/cudnn

Kata1 NetWork:https://katagotraining.org/networks/

想要创建AI模型,第一步需要在你的电脑上进行编译。有关Katago的编译文档在此:Compiling.md。

我的电脑中的运行环境为Ubuntu / GPU(CUDA)。接下来我将复现我的操作,这个操作适用于任何Linux,不清楚是否适用于MacOS,如果您用的是Windows可能需要自行修改。

首先需要一个比较高版本(3.10.2)的Cmake,因为Ubuntu源中的Cmake版本过低,所以需要前往Cmake官网下载Cmake包。之后解压到任何一个目录中即可。无需编译可以直接使用。如果需要加到PATH。请在你的bash配置文件(Bash为~/.bashrc,Zsh为~/.zshrc)中末尾添加:

export PATH=$PATH:(Your Path)/cmake-3.26.0-linux-x86_64/bin

安装好后键入cmake --version,如果返回了Cmake版本号即安装成功。

接下来请按照Compiling.md中给出的步骤顺序检查C++版本,以及各个BackEnd的需求。

一切准备就绪后请进入到工作目录

git clone https://github.com/lightvector/KataGo.git

clone好后进入cpp文件夹,根据你需要的BackEnd来Cmake编译

cmake . -DUSE_BACKEND=CUDA

如果在此报错没有libzip,请先安装libzip。

没有问题后在同一目录下执行

make

等待编译成功,如果在目录下找到可执行文件katago就成功了。

./katago version

恭喜你已经完成了Katago的编译!

开始SelfPlay前请先阅读SelfPlayTraining.md。这篇指南能告诉你如何进行自我训练并生成model。

首先需要有Python3和Tensorflow,在SelfPlay之前,请先安装它们。

接下来请准备好SelfPlay.cfg,这是Katago在SelfPlay时的配置文件。在这个配置文件中,可以调整棋盘的权值,CPU的使用和GPU等一些训练的配置。如果配置好,可以更有效地训练。

根据SelfPlayTraining.md中显示,需要有五个进程同时运作:SelfPlay Shuffler Training Exporter和GateKeeper。

我的过程中只用了前4个:

Selfplay engine (C++ - cpp/katago selfplay) - continuously plays games using the latest neural net in some directory of accepted models, writing the data to some directory.

Shuffler (python - python/shuffle.py) - scans directories of data from selfplay and shuffles it to produce TFRecord files to write to some directory.

Training (python - python/train.py) - continuously trains a neural net using TFRecord files from some directory, saving models periodically to some directory.

Exporter (python - python/export_model.py) - scans a directory of saved models and converts from Tensorflow's format to the format that all the C++ uses, exporting to some directory.

将这4个准备好后开始运行

请先阅读SelfTraining.md中对于命令的详解。(SelfTraining.md中没有关于shuffle.sh和export_model_for_selfplay.sh这两个,因为官方将这两个整合为Shuffle_and_Export_loop.sh)

我的运行指令为:(第一条指令处于cpp文件下,其余处于scripts文件夹下)

./katago selfplay -config ./work/config_files/selfplay1.cfg  -models-dir ./work/output/acceptedmodels -output-dir ./selfplay

./shuffle.sh ../ ./TempDir 10 256 -keep-target-rows 10000 -min-rows 100

./train.sh ../ kataAda b6c96 256 main -lr-scale 1.0

./export_model_for_selfplay.sh kataAda ../ 0

我的文件结构是:

Katago
├── cpp
│   ├── katago
│   └── selfplay
└── scripts
    ├── shuffle.sh
    ├── train.sh
    └── export_model_for_selfplay.sh

先运行好第一条第三条和第四条命令,然后手动运行第二条命令刷洗SelfPlay下的数据。其中第一条命令和第三条命令默认在终端输出,第二条命令手动执行后在终端输出,第四条命令在后台运行,输出到$basedir下的log中,这个可以手动调节。

第一条命令执行时应该输出的是正在进行第n场游戏

第二条命令执行时应该输出的是刷洗的数据量

第三条命令执行时应该输出的是训练过程,而不是未找到Shuffled数据

第四条命令若是想在终端输出可以将.sh文件中的输出到log给删除

如果想让第二条命令持续进行,可以使用shuffler_loop.sh。这个sh默认不会在终端输出,也可以将输出到log删除使得sh在终端输出

正确的结果是:第一个进程进行游戏,第二个进程扫描到数据并刷洗,第三个进程训练数据,最后在cpp文件夹下找到modelstobetests

执行后的文件夹:

Katago
├── cpp
│   ├── katago
│   ├── models
│   ├── modelstobetest
│   ├── selfplay
│   └── shuffleddata
└── scripts
    ├── shuffle.sh
    ├── train.sh
    └── export_model_for_selfplay.sh

如果你在modelstobetest中找到了model.bin.gz,恭喜你获得了模型!

后续可以用gatekeeper来测试模型并筛选好用的模型。

标签: AI Katago
最后更新:2023年5月6日

BiyiAdopac

是铁龙鸣。

点赞
< 上一篇

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

分类
  • AI / 1篇
  • Algorithm / 5篇
  • Linux / 6篇
  • Problems / 3篇
  • 常日说 / 1篇
  • 日本語 / 2篇
  • 游戏 / 1篇
  • 计算机 / 14篇
  • 资料 / 4篇
标签聚合
C/C++/C# ArchLinux Arcaea LaTex Physics AI Magisk Learning
The World of Scarlet
https://www.adament.xyz/wp-content/uploads/2024/10/the-world-of-scarlet-Piano.mp3

COPYRIGHT © 2025 adament.xyz. ALL RIGHTS RESERVED.
本站虽然不重要但是还是有的 隐私政策