Closed nodchip closed 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
このソースコード、私はよくわかってないのですけど、templateの特殊化をしているだけなのでincludeするだけで使えて、たとえば↓のように書けば良いですか?
恐らくそうだと思います。
↓で修正しておきました。ご指摘、ありがとうございました。
https://github.com/yaneurao/YaneuraOu/commit/707dcbf1091d07d6766a35894c6be58ee831cd27
https://github.com/yaneurao/YaneuraOu/blob/master/source/eval/nnue/evaluate_nnue_learner.cpp#L22 HalfKPE9のfactorizerのみが有効化されており、それ以外の入力特徴量のfactorizerが機能していません。ネットワーク定義マクロに応じて、適切なfactorizerをincludeし、有効化するのが本来あるべき姿だと思います。