Skip to content

Commit

Permalink
cuDNN版を廃止
Browse files Browse the repository at this point in the history
make_hcp_by_self_playを削除
  • Loading branch information
TadaoYamaoka committed Jan 9, 2021
1 parent f6d8ee9 commit 2134eed
Show file tree
Hide file tree
Showing 35 changed files with 39 additions and 3,272 deletions.
10 changes: 0 additions & 10 deletions DeepLearningShogi.sln
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cppshogi", "cppshogi\cppsho
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test", "test\test.vcxproj", "{A246A881-CCDA-4FC5-B8EA-DEFD779B2724}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_hcp_by_self_play", "make_hcp_by_self_play\make_hcp_by_self_play.vcxproj", "{CC7D9CC6-5D53-4E73-87E9-A20C24523A0F}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_hcpe_by_self_play", "make_hcpe_by_self_play\make_hcpe_by_self_play.vcxproj", "{8C4DECB0-1BD4-4485-9E2D-19993F5D7C5D}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "usi_onnxruntime", "usi_onnxruntime\usi_onnxruntime.vcxproj", "{A14AB8E7-348F-45B0-BBA3-BA1721FFE242}"
Expand Down Expand Up @@ -62,14 +60,6 @@ Global
{A246A881-CCDA-4FC5-B8EA-DEFD779B2724}.MakeBook|x64.ActiveCfg = MakeBook|x64
{A246A881-CCDA-4FC5-B8EA-DEFD779B2724}.Release_NoOpt|x64.ActiveCfg = Release_NoOpt|x64
{A246A881-CCDA-4FC5-B8EA-DEFD779B2724}.Release|x64.ActiveCfg = Release|x64
{CC7D9CC6-5D53-4E73-87E9-A20C24523A0F}.Debug|x64.ActiveCfg = Debug|x64
{CC7D9CC6-5D53-4E73-87E9-A20C24523A0F}.Debug|x64.Build.0 = Debug|x64
{CC7D9CC6-5D53-4E73-87E9-A20C24523A0F}.MakeBook_NoOpt|x64.ActiveCfg = MakeBook_NoOpt|x64
{CC7D9CC6-5D53-4E73-87E9-A20C24523A0F}.MakeBook|x64.ActiveCfg = MakeBook|x64
{CC7D9CC6-5D53-4E73-87E9-A20C24523A0F}.Release_NoOpt|x64.ActiveCfg = Release_NoOpt|x64
{CC7D9CC6-5D53-4E73-87E9-A20C24523A0F}.Release_NoOpt|x64.Build.0 = Release_NoOpt|x64
{CC7D9CC6-5D53-4E73-87E9-A20C24523A0F}.Release|x64.ActiveCfg = Release|x64
{CC7D9CC6-5D53-4E73-87E9-A20C24523A0F}.Release|x64.Build.0 = Release|x64
{8C4DECB0-1BD4-4485-9E2D-19993F5D7C5D}.Debug|x64.ActiveCfg = Debug|x64
{8C4DECB0-1BD4-4485-9E2D-19993F5D7C5D}.Debug|x64.Build.0 = Debug|x64
{8C4DECB0-1BD4-4485-9E2D-19993F5D7C5D}.MakeBook_NoOpt|x64.ActiveCfg = MakeBook_NoOpt|x64
Expand Down
20 changes: 12 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,26 +2,24 @@

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

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

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

http://tadaoyamaoka.hatenablog.com/

## 使用ライブラリ
* [Apery](https://github.com/HiraokaTakuya/apery)

※モンテカルロ木探索の実装は囲碁プログラムの[Ray+Rn](https://github.com/zakki/Ray)の実装を参考にしています。
## ダウンロード
[Releases](https://github.com/TadaoYamaoka/DeepLearningShogi/releases)からダウンロードできます。

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

## ビルド環境
Expand All @@ -43,9 +41,15 @@ http://tadaoyamaoka.hatenablog.com/
上記USIエンジンのビルド環境に加えて以下が必要
* [Pytorch](https://pytorch.org/) 1.6以上
* Python 3.7以上 ([Anaconda](https://www.continuum.io/downloads))
* [Boost](http://www.boost.org/) 1.69.0
* [Boost](http://www.boost.org/) 1.67.0以上
* CUDA (PyTorchに対応したバージョン)
* cuDNN (CUDAに対応したバージョン)

## 謝辞
* 将棋の局面管理、合法手生成に、[Apery](https://github.com/HiraokaTakuya/apery)のソースコードを使用しています。
* モンテカルロ木探索の実装は囲碁プログラムの[Ray+Rn](https://github.com/zakki/Ray)の実装を参考にしています。
* 探索部の一部にLeela Chess Zeroのソースコードを流用しています。
* 王手生成などに、[やねうら王](https://github.com/yaneurao/YaneuraOu)のソースコードを流用しています。

## ライセンス
ライセンスはGPLライセンスとします
ライセンスはGPL3ライセンスとします
10 changes: 5 additions & 5 deletions cppshogi/cppshogi.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -42,19 +42,19 @@ inline void make_input_features(const Position& position, features1_t* features1
for (PieceType pt = Pawn; pt < PieceTypeNum; ++pt) {
// 駒の配置
if (bb[pt].isSet(sq)) {
(*features1)[c2][pt - 1][sq2] = _one;
(*features1)[c2][pt - 1][sq2] = 1;
}

// 駒の利き
if (attacks[c][pt].isSet(sq)) {
(*features1)[c2][PIECETYPE_NUM + pt - 1][sq2] = _one;
(*features1)[c2][PIECETYPE_NUM + pt - 1][sq2] = 1;
}
}

// 利き数
const int num = std::min(MAX_ATTACK_NUM, position.attackersTo(c, sq, occupied_bb).popCount());
for (int k = 0; k < num; k++) {
(*features1)[c2][PIECETYPE_NUM + PIECETYPE_NUM + k][sq2] = _one;
(*features1)[c2][PIECETYPE_NUM + PIECETYPE_NUM + k][sq2] = 1;
}
}

Expand All @@ -66,14 +66,14 @@ inline void make_input_features(const Position& position, features1_t* features1
if (num >= MAX_PIECES_IN_HAND[hp]) {
num = MAX_PIECES_IN_HAND[hp];
}
std::fill_n((*features2_hand)[c2][p], (int)SquareNum * num, _one);
std::fill_n((*features2_hand)[c2][p], (int)SquareNum * num, 1);
p += MAX_PIECES_IN_HAND[hp];
}
}

// is check
if (position.inCheck()) {
std::fill_n((*features2)[MAX_FEATURES2_HAND_NUM], SquareNum, _one);
std::fill_n((*features2)[MAX_FEATURES2_HAND_NUM], SquareNum, 1);
}
}

Expand Down
3 changes: 2 additions & 1 deletion cppshogi/cppshogi.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,11 @@
#include "position.hpp"
#include "search.hpp"
#include "generateMoves.hpp"
#include "../usi/cudnn_dtype.h"

#define LEN(array) (sizeof(array) / sizeof(array[0]))

typedef float DType;

constexpr int MAX_HPAWN_NUM = 8; // 歩の持ち駒の上限
constexpr int MAX_HLANCE_NUM = 4;
constexpr int MAX_HKNIGHT_NUM = 4;
Expand Down
205 changes: 0 additions & 205 deletions make_hcp_by_self_play/make_hcp_by_self_play.cpp

This file was deleted.

Loading

0 comments on commit 2134eed

Please sign in to comment.