TadaoYamaokaの開発日記

個人開発しているスマホアプリや将棋AIの開発ネタを中心に書いていきます。

2021-12-01から1ヶ月間の記事一覧

書籍のpython-dlshogi2のバグについて 続き

先日の記事で報告した、書籍「強い将棋ソフトの創りかた」の第5章のソースコードのmake_move_labelの移動方向の判定に誤りがあった点について、GitHubのソースコードを修正して、再学習したモデルファイルをプッシュしました。make_move_labelで移動方向の判…

書籍のpython-dlshogi2のバグについて

書籍「強い将棋ソフトの創りかた」の第5章のpython-dlshogi2に精度に影響のあるバグがあったので報告します。 誤り箇所 p.109 リスト5.2のfeatures.pyのmake_move_labelの移動方向を判定する処理は、以下のように定義されています。 python-dlshogi2/feature…

Qugiyのビット演算を試す その3

先日、飛車と角の利きのビット演算を実装し、NPSが平均1%程度向上することが確認できたので、今回は強さを測定した。 強さの測定 dlshogi互角局面集を使用して、GPU A100x2、GPUごと3スレッド、水匠5は30スレッドで、測定した。 # PLAYER : RATING ERROR POI…

【書籍】強い将棋ソフトの創りかた

先月、このブログでお知らせしていた書籍「強い将棋ソフトの創りかた」が12/20に発売されました。book.mynavi.jp 応援Tweetしてもらいました。来週発売になる『強い将棋ソフトの創り方』のレビュー記事をブログに書きました。Pythonで1000行程度書くだけで昨…

ジョイスティック入力の可視化ツール

久しぶりに格闘ゲームをプレイしたらコマンドがぜんぜん入らない。 スーパーファミコンでスト2をプレイしてた頃は、一人で2P対戦をしてコマンドの練習した思い出がある。今ではPCがあるので、入力中のコマンドを可視化して、コマンドが失敗した原因をつかめ…

Qugiyのビット演算を試す その2

昨日、香車の利きと、飛車の縦方向の利き、歩の駒打ちについて、Qugiyのアピール文章のビット演算を実装して、速度を測定を行ったが効果がないことがわかった。今回は、飛車と角の利きのビット演算を実装して、測定を行った。 飛車と角の利き 変更前 ZEN2を…

Qugiyのビット演算を試す

やねうら王の方で、Qugiyのビット演算の取り込みがされているので、dlshogiも追随したいと思う。ひとまず実装が簡単な香車の利きと、飛車の縦方向の利き、歩の駒打ちについて対応を行い、速度の測定を行った。 香車の利き 変更前 dlshogiはAperyのコードを流…

CUDAマルチストリーム対応

先日、CUDAのメモリの非同期転送に対応したことを記事にした。 その際に、マルチストリームに対応することで、転送だけではなく演算処理も並列化できることを書いた。その後、マルチストリームの実装を行い、2GPUでは、初期局面でNPSが36%向上することを確認…

EfficientZeroを試す

NeurIPS 2021で提案されたEfficientZeroを試してみた。EfficientZeroは、MuZeroのようなモデルベースの強化学習の手法で、サンプル効率が非常に高いことが特徴になっている。DQNでは、5億フレーム(約38日間のリアルゲーム時間)が必要だったが、EfficientZero…

dlshogiの序盤にランダム性を加える

dlshogi同士で、平手開始局面から対局すると毎回ほとんど同じ棋譜になる。 以前の調査では、先手勝率が65.7%と偏った結果になった。また、最新のモデルでは先手で角換わりになるため、角換わりに偏った勝率になる。そのため、平手開始局面からの計測した勝率…

WSL2+WSLgでOpenAI Gymを動かす

以前に、WSLでOpenAI Gymを動かす記事を書いた。 その際は、Windows側にX Window Serverの「VcXsrv」をインストールして行ったが、Windows 11では、WSLgがX Window Serverの役割を果たすので、Windows側のセットアップなしにLinuxのGUIを扱えるようになった…