Skip to content
Snippets Groups Projects
Commit a8613b8b authored by Franck Dary's avatar Franck Dary
Browse files

Improved model selection when using dynamic oracle

parent f2e0e3da
No related branches found
No related tags found
No related merge requests found
...@@ -82,7 +82,6 @@ int MacaonTrain::main() ...@@ -82,7 +82,6 @@ int MacaonTrain::main()
auto nbEpoch = variables["nbEpochs"].as<int>(); auto nbEpoch = variables["nbEpochs"].as<int>();
auto batchSize = variables["batchSize"].as<int>(); auto batchSize = variables["batchSize"].as<int>();
auto dynamicOracleInterval = variables["dynamicOracleInterval"].as<int>(); auto dynamicOracleInterval = variables["dynamicOracleInterval"].as<int>();
bool saveEverything = dynamicOracleInterval > 0;
auto rarityThreshold = variables["rarityThreshold"].as<float>(); auto rarityThreshold = variables["rarityThreshold"].as<float>();
bool debug = variables.count("debug") == 0 ? false : true; bool debug = variables.count("debug") == 0 ? false : true;
bool printAdvancement = !debug && variables.count("silent") == 0 ? true : false; bool printAdvancement = !debug && variables.count("silent") == 0 ? true : false;
...@@ -145,9 +144,9 @@ int MacaonTrain::main() ...@@ -145,9 +144,9 @@ int MacaonTrain::main()
if (buffer != std::fgets(buffer, 1024, f)) if (buffer != std::fgets(buffer, 1024, f))
break; break;
float devScoreMean = std::stof(util::split(buffer, '\t').back()); float devScoreMean = std::stof(util::split(buffer, '\t').back());
if (computeDevScore and devScoreMean > bestDevScore) if (computeDevScore and (devScoreMean > bestDevScore or currentEpoch == dynamicOracleInterval))
bestDevScore = devScoreMean; bestDevScore = devScoreMean;
if (!computeDevScore and devScoreMean < bestDevScore) if (!computeDevScore and (devScoreMean < bestDevScore or currentEpoch == dynamicOracleInterval))
bestDevScore = devScoreMean; bestDevScore = devScoreMean;
currentEpoch++; currentEpoch++;
} }
...@@ -204,7 +203,7 @@ int MacaonTrain::main() ...@@ -204,7 +203,7 @@ int MacaonTrain::main()
if (!computeDevScore) if (!computeDevScore)
saved = devScoreMean <= bestDevScore; saved = devScoreMean <= bestDevScore;
if (saveEverything) if (currentEpoch == dynamicOracleInterval)
saved = true; saved = true;
if (saved) if (saved)
{ {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment