From 9fb7842019af8e467b41502f6cc5a55e39906677 Mon Sep 17 00:00:00 2001
From: Franck Dary <franck.dary@lis-lab.fr>
Date: Tue, 31 Mar 2020 20:14:58 +0200
Subject: [PATCH] Print time during training

---
 common/include/util.hpp     |  2 ++
 common/src/util.cpp         | 11 +++++++++++
 trainer/src/MacaonTrain.cpp |  9 ++++-----
 3 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/common/include/util.hpp b/common/include/util.hpp
index 1ab8943..c031dee 100644
--- a/common/include/util.hpp
+++ b/common/include/util.hpp
@@ -54,6 +54,8 @@ bool isSeparator(utf8char c);
 
 bool isIllegal(utf8char c);
 
+std::string getTime();
+
 template <typename T>
 bool isEmpty(const std::vector<T> & s)
 {
diff --git a/common/src/util.cpp b/common/src/util.cpp
index 23f5a6e..e5b5016 100644
--- a/common/src/util.cpp
+++ b/common/src/util.cpp
@@ -186,3 +186,14 @@ std::vector<std::filesystem::path> util::findFilesByExtension(std::filesystem::p
   return files;
 }
 
+std::string util::getTime()
+{
+  std::time_t rawtime;
+  char buffer[80];
+
+  std::time(&rawtime);
+
+  std::strftime(buffer, sizeof(buffer), "%H:%M:%S", std::localtime(&rawtime));
+  return std::string(buffer);
+}
+
diff --git a/trainer/src/MacaonTrain.cpp b/trainer/src/MacaonTrain.cpp
index 3df1365..5f5db36 100644
--- a/trainer/src/MacaonTrain.cpp
+++ b/trainer/src/MacaonTrain.cpp
@@ -92,7 +92,7 @@ int MacaonTrain::main()
   bool printAdvancement = !debug && variables.count("silent") == 0 ? true : false;
   bool computeDevScore = variables.count("devScore") == 0 ? false : true;
 
-  fmt::print(stderr, "Training using device : {}\n", NeuralNetworkImpl::device.str());
+  fmt::print(stderr, "[{}] Training using device : {}\n", util::getTime(), NeuralNetworkImpl::device.str());
 
   try
   {
@@ -159,10 +159,9 @@ int MacaonTrain::main()
       bestDevScore = devScoreMean;
       machine.save();
     }
-    if (debug)
-      fmt::print(stderr, "Epoch {:^5} loss = {:6.1f} dev = {} {:5}\n", fmt::format("{}/{}", i+1, nbEpoch), loss, devScoresStr, saved ? "SAVED" : "");
-    else
-      fmt::print(stderr, "\r{:80}\rEpoch {:^5} loss = {:6.1f} dev = {} {:5}\n", " ", fmt::format("{}/{}", i+1, nbEpoch), loss, devScoresStr, saved ? "SAVED" : "");
+    if (!debug)
+      fmt::print(stderr, "\r{:80}\r", "");
+    fmt::print(stderr, "[{}] Epoch {:^5} loss = {:6.1f} dev = {} {:5}\n", util::getTime(), fmt::format("{}/{}", i+1, nbEpoch), loss, devScoresStr, saved ? "SAVED" : "");
   }
 
   }
-- 
GitLab