今までdlshogiの学習を行うために、python環境を作成して、boostをインストールして、C++からPythonモジュール(cppshogi)をビルドしてという手順が必要だったが、pipコマンドでインストールできるようにPyPIに登録した。
pip install dlshogi
アップデートの場合は、
pip install dlshogi -U
で、導入できるようにした。
学習用スクリプトも複数(train_hcpe.py~train_hcpe3.py)あったが、train.pyに統一した。
python -m dlshogi.train
で学習を実行できる。
これで、Google Colabでの学習も容易になる。
utilsにあったスクリプトは、dlshogi.utilsパッケージに移動した。
python -m dlshogi.utils.csa_to_hcpe3
のようにして、実行できる。
注意事項
新しいtrain.pyは、今までと保存形式が変わっている。互換性のために以前の形式も読めるようにしている。
詳細は、この記事を参照。
dlshogiの教師データのフォーマットには、hcpeフォーマット(指し手のみ、局面単位)と、hcpe3フォーマット(方策の分布、対局単位)の2つがあるが、自動判別してどちらも読めるようにしている。
複数ファイルを入力できるので、混在もできる。
hcpe3を指し手のみで学習するには、「--temperature 0」を指定する。
指し手のみの場合、方策が決定論的にならないように、エントロピー正則化項の係数「--beta 0.001」を指定するとよい。
「--use_average」と「--use_evalfix」と「--use_swa」はデフォルトオフだが指定した方がよい。
GPUにTensorCoreがある場合は、「--use_amp」を指定した方がよい。
その他
dlshogiのソースを修正しなくても、ユーザ定義のモデルファイルを学習できるように、「--user_network」オプションを追加した。
「--user_network package0.package1.ClassName」
のようにして、クラス名をパッケージ付きで指定する。