Added use_raw_nnue_eval option to return raw NNUE eval value in evaluate().

This commit is contained in:
nodchip
2020-08-27 23:48:28 +09:00
parent 7ee8a2bbb7
commit 9fc3ff4c30
2 changed files with 19 additions and 0 deletions
+12
View File
@@ -32,6 +32,13 @@
#include "thread.h"
#include "uci.h"
#ifdef EVAL_LEARN
namespace Learner
{
extern bool use_raw_nnue_eval;
}
#endif
namespace Eval {
bool useNNUE;
@@ -941,6 +948,11 @@ make_v:
/// evaluation of the position from the point of view of the side to move.
Value Eval::evaluate(const Position& pos) {
#ifdef EVAL_LEARN
if (Learner::use_raw_nnue_eval) {
return NNUE::evaluate(pos);
}
#endif
if (Eval::useNNUE)
{
+7
View File
@@ -133,6 +133,10 @@ double dest_score_max_value = 1.0;
// probabilities in the trainer. Sometimes we want to use the winning probabilities in the training
// data directly. In those cases, we set false to this variable.
bool convert_teacher_signal_to_winning_probability = true;
// Enable hybrid eval. If hybrid eval is enabled, training data generation and
// training don't work well.
// https://discordapp.com/channels/435943710472011776/733545871911813221/748524079761326192
bool use_raw_nnue_eval = false;
// -----------------------------------
// write phase file
@@ -1050,6 +1054,8 @@ void gen_sfen(Position&, istringstream& is)
is >> detect_draw_by_consecutive_low_score;
else if (token == "detect_draw_by_insufficient_mating_material")
is >> detect_draw_by_insufficient_mating_material;
else if (token == "use_raw_nnue_eval")
is >> use_raw_nnue_eval;
else
cout << "Error! : Illegal token " << token << endl;
}
@@ -3227,6 +3233,7 @@ void learn(Position&, istringstream& is)
else if (option == "dest_score_min_value") is >> dest_score_min_value;
else if (option == "dest_score_max_value") is >> dest_score_max_value;
else if (option == "convert_teacher_signal_to_winning_probability") is >> convert_teacher_signal_to_winning_probability;
else if (option == "use_raw_nnue_eval") is >> use_raw_nnue_eval;
// Otherwise, it's a filename.
else