Giter Site home page Giter Site logo

ari_shogi_nnue_train's Introduction

Ari_Shogi_NNUE_train

Pytorchで将棋のNNUE評価関数の学習をするプログラム

概要

  • NNUEの学習に関する各種実験用のプログラムのベースとして制作しました。
  • 元々は個人で作って個人で使う予定の公開するつもりのないプログラムでしたが、公開してほしいという要望があったので公開する事にしました。
  • いつ書いたか覚えてもない非公開の個人用プログラム達から色々と流用して製作されているため、全体的に汚いですが、一応学習自体はできると思います。
  • バグが潜んでいる確率が物凄く高いので、そのまま利用したり、改造したりするのは推奨していません。
  • この学習部のテストとして学習させた評価関数は https://github.com/YuaHyodo/Haojian_nnue で公開しています。
  • プログラムが汚いとか、変数名おかしいとか、そういうのには対応しない予定です。ただし、「ライセンス関連で重大な問題を発見した」といった場合には可能な限り早く対処するので、そういうのがあった場合はご連絡ください。

ファイル説明

  • train.py: 本体
  • dataloader.py: データローダー
  • features_halfkp: 入力特徴量
  • ranger.py: optimizerの1つ。NNUE-Pytorchからそのまま持ってきている。
  • NNUE_network1.py: モデルの定義、読み込み、書き込みについて扱っているファイル

色々

  • 第34回世界コンピュータ将棋選手権( http://www2.computer-shogi.org/wcsc34/ )に出場する予定のAri Shogi and フレンズは、この学習部を発展させた学習部で作ったNNUE評価関数を搭載する予定です。
  • ゼロからの学習は計算資源の都合上試せていません。
  • NNUEの学習では、「ある局面を学習させる際、その局面ではなく、その局面から静止探索を行った際の末端の局面を学習させる」という事が行われる(らしい)が、この学習部単体ではそのような学習はできません。そのため、そのような学習を行いたい場合は事前に教師データの局面を静止探索の末端の局面に入れ替えておく必要があります。

ライセンスに関して

  • ベースになっているpython-dlshogi2( https://github.com/TadaoYamaoka/python-dlshogi2 )、一部のコードを利用しているNNUE-Pytorchの将棋バージョン( https://github.com/nodchip/nnue-pytorch )がGPL-3.0なのでGPL-3.0に設定しています。詳細はLICENSEファイルを確認してください。
  • 入力特徴量に関する部分で利用している https://github.com/bleu48/shogi-eval で公開されているプログラムにはライセンスが明記されていませんが、リポジトリ管理者に問い合わせたところ自由に利用して良いとの事だったので、一部改造して利用しています。

ari_shogi_nnue_train's People

Contributors

yuahyodo avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.