From 6a9e3b3217ef38f14ae306cb4e686d9e77f1d851 Mon Sep 17 00:00:00 2001 From: Franck Dary <franck.dary@etu.univ-amu.fr> Date: Fri, 14 Dec 2018 14:32:55 +0100 Subject: [PATCH] Added a way to specify the .dict file as a program parameter --- maca_common/include/ProgramParameters.hpp | 1 + maca_common/src/ProgramParameters.cpp | 1 + trainer/src/macaon_train.cpp | 3 +++ transition_machine/src/TransitionMachine.cpp | 5 ++++- 4 files changed, 9 insertions(+), 1 deletion(-) diff --git a/maca_common/include/ProgramParameters.hpp b/maca_common/include/ProgramParameters.hpp index e3aa19f..14d920f 100644 --- a/maca_common/include/ProgramParameters.hpp +++ b/maca_common/include/ProgramParameters.hpp @@ -53,6 +53,7 @@ struct ProgramParameters static std::string classifierName; static int batchSize; static std::string loss; + static std::string dicts; private : diff --git a/maca_common/src/ProgramParameters.cpp b/maca_common/src/ProgramParameters.cpp index c7c56d7..cd88256 100644 --- a/maca_common/src/ProgramParameters.cpp +++ b/maca_common/src/ProgramParameters.cpp @@ -25,6 +25,7 @@ std::string ProgramParameters::devFilename; std::string ProgramParameters::devName; std::string ProgramParameters::lang; std::string ProgramParameters::optimizer; +std::string ProgramParameters::dicts; int ProgramParameters::nbIter; int ProgramParameters::seed; bool ProgramParameters::removeDuplicates; diff --git a/trainer/src/macaon_train.cpp b/trainer/src/macaon_train.cpp index 62d1e07..ab8111c 100644 --- a/trainer/src/macaon_train.cpp +++ b/trainer/src/macaon_train.cpp @@ -41,6 +41,8 @@ po::options_description getOptionsDescription() ("help,h", "Produce this help message") ("debug,d", "Print infos on stderr") ("printEntropy", "Print mean entropy and standard deviation accross sequences") + ("dicts", po::value<std::string>()->default_value(""), + "The .dict file describing all the dictionaries to be used in the experiement. By default the filename specified in the .tm file will be used") ("optimizer", po::value<std::string>()->default_value("amsgrad"), "The learning algorithm to use : amsgrad | adam | sgd") ("loss", po::value<std::string>()->default_value("neglogsoftmax"), @@ -265,6 +267,7 @@ int main(int argc, char * argv[]) ProgramParameters::beta2 = vm["b2"].as<float>(); ProgramParameters::bias = vm["bias"].as<float>(); ProgramParameters::optimizer = vm["optimizer"].as<std::string>(); + ProgramParameters::dicts = vm["dicts"].as<std::string>(); ProgramParameters::loss = vm["loss"].as<std::string>(); ProgramParameters::dynamicEpoch = vm["epochd"].as<int>(); ProgramParameters::dynamicProbability = vm["proba"].as<float>(); diff --git a/transition_machine/src/TransitionMachine.cpp b/transition_machine/src/TransitionMachine.cpp index e3f8f93..6319292 100644 --- a/transition_machine/src/TransitionMachine.cpp +++ b/transition_machine/src/TransitionMachine.cpp @@ -33,7 +33,10 @@ TransitionMachine::TransitionMachine(bool trainMode) if(fscanf(fd, "Dicts : %[^\n]\n", buffer) != 1) badFormatAndAbort(ERRINFO); - Dict::readDicts(ProgramParameters::expPath, ProgramParameters::expPath + buffer, trainMode); + if (ProgramParameters::dicts.empty()) + ProgramParameters::dicts = ProgramParameters::expPath + buffer; + + Dict::readDicts(ProgramParameters::expPath, ProgramParameters::dicts, trainMode); // Reading %CLASSIFIERS if(fscanf(fd, "%%%s\n", buffer) != 1 || buffer != std::string("CLASSIFIERS")) -- GitLab