diff --git a/maca_common/include/ProgramParameters.hpp b/maca_common/include/ProgramParameters.hpp index e3aa19f178fb68535d11f28f521b0ffc4566fdc9..14d920fa6af78cf5e452fb3e5c2ee351ea91bc0d 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 c7c56d73a45e4c43993f64927188256a22b9be0e..cd88256d9c49ed2275ab125415ecbe5b1ff325bb 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 62d1e0728f3275af7591e07bf8088e42540470b5..ab8111c1eaa87772ff0b48cba2aaee179614e579 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 e3f8f93a572ab11f0bab9e3885539f293c71c880..63192924351f164db82e992fa8182c5796fc3a84 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"))