将棋でディープラーニングを実験するためのプロジェクトです。
基本的にAlphaGo/AlphaZeroの手法を参考に実装していく方針です。
検討経緯、実験結果などは、随時こちらのブログに掲載していきます。
https://tadaoyamaoka.hatenablog.com/
Releasesからダウンロードできます。
フォルダ | 説明 |
---|---|
cppshogi | Aperyを流用した将棋ライブラリ(盤面管理、指し手生成)、入力特徴量作成 |
dlshogi | ニューラルネットワークの学習(Python) |
make_hcpe_by_self_play | MCTSによる自己対局 |
test | テストコード |
usi | 対局用USIエンジン |
usi_onnxruntime | OnnxRuntime版ビルド用プロジェクト |
utils | ツール類 |
- Windows 10 64bit
- Visual Studio 2019
- Ubuntu 18.04 LTS
- g++
- 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ライセンスとします。