yaneurao / YaneuraOu

YaneuraOu is the World's Strongest Shogi engine(AI player) , WCSC29 1st winner , educational and USI compliant engine.
GNU General Public License v3.0
525 stars 140 forks source link

HalfKPE9以外のfactorizerが無効化されている #156

Closed nodchip closed 3 years ago

nodchip commented 3 years ago

https://github.com/yaneurao/YaneuraOu/blob/master/source/eval/nnue/evaluate_nnue_learner.cpp#L22 HalfKPE9のfactorizerのみが有効化されており、それ以外の入力特徴量のfactorizerが機能していません。ネットワーク定義マクロに応じて、適切なfactorizerをincludeし、有効化するのが本来あるべき姿だと思います。

yaneurao commented 3 years ago

これhalfKPE9対応の作業したときに、間違ってそうやってしまった模様😥

このソースコード、私はよくわかってないのですけど、templateの特殊化をしているだけなのでincludeするだけで使えて、たとえば↓のように書けば良いですか?

if defined(EVAL_NNUE_HALFKPE9)

// halfKPE9の時用のfactorizer

include "trainer/features/factorizer_half_kpe9.h"

else

// 通常のNNUEのときのfactorizer

include "trainer/features/factorizer_half_kp.h"

endif

nodchip commented 3 years ago

このソースコード、私はよくわかってないのですけど、templateの特殊化をしているだけなのでincludeするだけで使えて、たとえば↓のように書けば良いですか?

恐らくそうだと思います。

yaneurao commented 3 years ago

↓で修正しておきました。ご指摘、ありがとうございました。

https://github.com/yaneurao/YaneuraOu/commit/707dcbf1091d07d6766a35894c6be58ee831cd27