当前位置:   article > 正文

生命游戏 并行化_动手实现并行版AlphaZero五子棋

并行alphazero

动手实现并行版AlphaZero五子棋

前言

项目链接:github.com/hijkzzz/alp…

AlphaZero算法已经发布了一年多了,GitHub也有各种各样的实现,有一千行Python代码单线程低性能版,也有数万行C++代码的分布式版本。但是这些实现都不能满足一般的算法爱好者的需求,即一个简单的并且单机的可运行的高性能AlphaZero算法。

一图解密AlphaZero

首先我们通过一张图了解一下AlphaZero算法的原理

432aa553e5a3ef4ba5edf1a6c86cd5fe.png

可以看到AlaphaGo Zero的算法流程分为:

  1. 自对弈(利用蒙特卡洛树搜索)N局生成棋谱
  2. 利用生成的棋谱训练网络
  3. 评估新训练的网络

分析

对于Python版本的AlphaZero算法,通常受限制于GIL,过程中最耗时间的自对弈阶段(见下图)无法并行化,所以最直接的优化方式是使用C++这种高性能语言实现底层运算细节。

fb9e7342b86e31c0dbf8bd37c842d7a0.png

解决方法

<
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/612516
推荐阅读
相关标签
  

闽ICP备14008679号