DeepLearningShogi(dlshogi)

将棋でディープラーニングを実験するためのプロジェクトです。

基本的にAlphaGo/AlphaZeroの手法を参考に実装していく方針です。

検討経緯、実験結果などは、随時こちらのブログに掲載していきます。

http://tadaoyamaoka.hatenablog.com/

ダウンロード

Releasesからダウンロードできます。

ソース構成

フォルダ 説明
cppshogi Aperyを流用した将棋ライブラリ(盤面管理、指し手生成)、入力特徴量作成
dlshogi ニューラルネットワークの学習(Python)
make_hcpe_by_self_play MCTSによる自己対局
test テストコード
usi 対局用USIエンジン
usi_onnxruntime OnnxRuntime版ビルド用プロジェクト
utils ツール類

ビルド環境

USIエンジン、自己対局プログラム

Windowsの場合

  • Windows 10 64bit
  • Visual Studio 2019

Linuxの場合

  • Ubuntu 18.04 LTS
  • g++

Windows、Linux共通

  • CUDA 11.0
  • cuDNN 8.0
  • TensorRT 7.2.1

※CUDA 10.0以上であれば変更可

学習部

上記USIエンジンのビルド環境に加えて以下が必要

  • Pytorch 1.6以上
  • Python 3.7以上 (Anaconda)
  • Boost 1.67.0以上
  • CUDA (PyTorchに対応したバージョン)
  • cuDNN (CUDAに対応したバージョン)

謝辞

  • 将棋の局面管理、合法手生成に、Aperyのソースコードを使用しています。
  • モンテカルロ木探索の実装は囲碁プログラムのRay+Rnの実装を参考にしています。
  • 探索部の一部にLeela Chess Zeroのソースコードを流用しています。
  • 王手生成などに、やねうら王のソースコードを流用しています。

ライセンス

ライセンスはGPL3ライセンスとします。