From bdc9e448d5066e17eb29362f63498c4534ad4e0a Mon Sep 17 00:00:00 2001 From: Franck Dary <franck.dary@etu.univ-amu.fr> Date: Fri, 9 Nov 2018 13:26:31 +0100 Subject: [PATCH] Added an option to print time --- maca_common/include/ProgramParameters.hpp | 1 + maca_common/include/util.hpp | 5 +++++ maca_common/src/ProgramParameters.cpp | 1 + maca_common/src/util.cpp | 12 ++++++++++++ trainer/src/Trainer.cpp | 6 +++++- trainer/src/macaon_train.cpp | 2 ++ 6 files changed, 26 insertions(+), 1 deletion(-) diff --git a/maca_common/include/ProgramParameters.hpp b/maca_common/include/ProgramParameters.hpp index 2299fd2..2cd815a 100644 --- a/maca_common/include/ProgramParameters.hpp +++ b/maca_common/include/ProgramParameters.hpp @@ -46,6 +46,7 @@ struct ProgramParameters static int nbTrain; static bool randomEmbeddings; static bool printEntropy; + static bool printTime; static std::string sequenceDelimiterTape; static std::string sequenceDelimiter; diff --git a/maca_common/include/util.hpp b/maca_common/include/util.hpp index fc012e7..0ad31ce 100644 --- a/maca_common/include/util.hpp +++ b/maca_common/include/util.hpp @@ -163,6 +163,11 @@ std::string float2str(float f, const char * format); /// @return s without suffix at the end. std::string removeSuffix(const std::string & s, const std::string & suffix); +/// @brief Return a string with the current system time. +/// +/// @return Current system time. +std::string getTime(); + /// @brief Macro giving informations about an error. #define ERRINFO (getFilenameFromPath(std::string(__FILE__))+ ":l." + std::to_string(__LINE__)).c_str() diff --git a/maca_common/src/ProgramParameters.cpp b/maca_common/src/ProgramParameters.cpp index 6ac3fe5..43604b5 100644 --- a/maca_common/src/ProgramParameters.cpp +++ b/maca_common/src/ProgramParameters.cpp @@ -39,6 +39,7 @@ float ProgramParameters::dynamicProbability; bool ProgramParameters::showFeatureRepresentation; bool ProgramParameters::randomEmbeddings; bool ProgramParameters::printEntropy; +bool ProgramParameters::printTime; int ProgramParameters::iterationSize; int ProgramParameters::nbTrain; std::string ProgramParameters::sequenceDelimiterTape; diff --git a/maca_common/src/util.cpp b/maca_common/src/util.cpp index 6d8fc12..5bfa71d 100644 --- a/maca_common/src/util.cpp +++ b/maca_common/src/util.cpp @@ -1,6 +1,7 @@ #include "util.hpp" #include <algorithm> #include <cstring> +#include <ctime> bool isAlpha(char c) { @@ -360,3 +361,14 @@ std::string removeSuffix(const std::string & s, const std::string & suffix) return result; } +std::string getTime() +{ + time_t rawtime; + char buffer[80]; + + time (&rawtime); + + strftime(buffer, sizeof(buffer), "%H:%M:%S", localtime(&rawtime)); + return std::string(buffer); +} + diff --git a/trainer/src/Trainer.cpp b/trainer/src/Trainer.cpp index fda7506..3f43c06 100644 --- a/trainer/src/Trainer.cpp +++ b/trainer/src/Trainer.cpp @@ -96,7 +96,9 @@ void Trainer::train() { Dict::createFiles(ProgramParameters::expPath, ""); - fprintf(stderr, "Training of \'%s\' :\n", tm.name.c_str()); + fprintf(stderr, "%sTraining of \'%s\' :\n", + ProgramParameters::printTime ? ("["+getTime()+"] ").c_str() : "", + tm.name.c_str()); auto resetAndShuffle = [this]() { @@ -318,6 +320,8 @@ void Trainer::printScoresAndSave(FILE * output) if (ProgramParameters::interactive) fprintf(stderr, " \r"); + if (ProgramParameters::printTime) + fprintf(output, "[%s] ", getTime().c_str()); fprintf(output, "Iteration %d/%d :\n", curIter+1, ProgramParameters::nbIter); printColumns(output, {names, acc, train, dev, savedStr}); diff --git a/trainer/src/macaon_train.cpp b/trainer/src/macaon_train.cpp index 41f9b42..980b2d0 100644 --- a/trainer/src/macaon_train.cpp +++ b/trainer/src/macaon_train.cpp @@ -68,6 +68,7 @@ po::options_description getOptionsDescription() "The name of the buffer's tape that contains the delimiter token for a sequence") ("sequenceDelimiter", po::value<std::string>()->default_value("1"), "The value of the token that act as a delimiter for sequences") + ("printTime", "Print time on stderr") ("shuffle", po::value<bool>()->default_value(true), "Shuffle examples after each iteration"); @@ -236,6 +237,7 @@ int main(int argc, char * argv[]) ProgramParameters::bdName = vm["bd"].as<std::string>(); ProgramParameters::mcdName = vm["mcd"].as<std::string>(); ProgramParameters::debug = vm.count("debug") == 0 ? false : true; + ProgramParameters::printTime = vm.count("printTime") == 0 ? false : true; ProgramParameters::trainName = vm["train"].as<std::string>(); ProgramParameters::devName = vm["dev"].as<std::string>(); ProgramParameters::lang = vm["lang"].as<std::string>(); -- GitLab