Add date/time to header of report best
This commit is contained in:
parent
de4fa6a04f
commit
06de13df98
@ -1,11 +1,30 @@
|
|||||||
#include <filesystem>
|
#include <filesystem>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
#include <sstream>
|
||||||
#include <set>
|
#include <set>
|
||||||
#include "BestResults.h"
|
#include "BestResults.h"
|
||||||
#include "Result.h"
|
#include "Result.h"
|
||||||
#include "Colors.h"
|
#include "Colors.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
namespace fs = std::filesystem;
|
||||||
|
// function ftime_to_string, Code taken from
|
||||||
|
// https://stackoverflow.com/a/58237530/1389271
|
||||||
|
template <typename TP>
|
||||||
|
std::string ftime_to_string(TP tp)
|
||||||
|
{
|
||||||
|
using namespace std::chrono;
|
||||||
|
auto sctp = time_point_cast<system_clock::duration>(tp - TP::clock::now()
|
||||||
|
+ system_clock::now());
|
||||||
|
auto tt = system_clock::to_time_t(sctp);
|
||||||
|
std::tm* gmt = std::gmtime(&tt);
|
||||||
|
std::stringstream buffer;
|
||||||
|
buffer << std::put_time(gmt, "%Y-%m-%d %H:%M");
|
||||||
|
return buffer.str();
|
||||||
|
}
|
||||||
|
|
||||||
namespace platform {
|
namespace platform {
|
||||||
|
|
||||||
string BestResults::build()
|
string BestResults::build()
|
||||||
@ -97,21 +116,6 @@ namespace platform {
|
|||||||
}
|
}
|
||||||
string fileModel, fileScore;
|
string fileModel, fileScore;
|
||||||
for (const auto& file : files) {
|
for (const auto& file : files) {
|
||||||
// take the model from the file name and add it to a vector of models
|
|
||||||
// set model to the name of the first model in the vector
|
|
||||||
// filter files and build the best results file of this model
|
|
||||||
// repeat for all models
|
|
||||||
// another for loop to read the best results file of each model and print al together
|
|
||||||
// each row is a dataset and each column is a model
|
|
||||||
// the score is the score of the best result of each model for that dataset
|
|
||||||
// the rows are datasets the columns are models and the cells are the scores
|
|
||||||
// the first row is the header with the model names
|
|
||||||
// the first column is the dataset names
|
|
||||||
// the last column is the average score of each dataset
|
|
||||||
// the last row is the average score of each model
|
|
||||||
// the last cell is the average score of all models
|
|
||||||
// the last row and column are in bold
|
|
||||||
|
|
||||||
// extract the model from the file name
|
// extract the model from the file name
|
||||||
tie(fileModel, fileScore) = getModelScore(file);
|
tie(fileModel, fileScore) = getModelScore(file);
|
||||||
// add the model to the vector of models
|
// add the model to the vector of models
|
||||||
@ -140,9 +144,10 @@ namespace platform {
|
|||||||
cerr << Colors::MAGENTA() << "File " << bestFileName << " doesn't exist." << Colors::RESET() << endl;
|
cerr << Colors::MAGENTA() << "File " << bestFileName << " doesn't exist." << Colors::RESET() << endl;
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
auto date = ftime_to_string(filesystem::last_write_time(bestFileName));
|
||||||
auto data = loadFile(bestFileName);
|
auto data = loadFile(bestFileName);
|
||||||
cout << Colors::GREEN() << "Best results for " << model << " and " << score << endl;
|
cout << Colors::GREEN() << "Best results for " << model << " and " << score << " as of " << date << endl;
|
||||||
cout << "------------------------------------------" << endl;
|
cout << "--------------------------------------------------------" << endl;
|
||||||
cout << Colors::GREEN() << " # Dataset Score File Hyperparameters" << endl;
|
cout << Colors::GREEN() << " # Dataset Score File Hyperparameters" << endl;
|
||||||
cout << "=== ========================= =========== ================================================================== ================================================= " << endl;
|
cout << "=== ========================= =========== ================================================================== ================================================= " << endl;
|
||||||
auto i = 0;
|
auto i = 0;
|
||||||
@ -164,6 +169,7 @@ namespace platform {
|
|||||||
bool first = true;
|
bool first = true;
|
||||||
json origin;
|
json origin;
|
||||||
json table;
|
json table;
|
||||||
|
auto maxDate = filesystem::file_time_type::max();
|
||||||
for (const auto& model : models) {
|
for (const auto& model : models) {
|
||||||
this->model = model;
|
this->model = model;
|
||||||
string bestFileName = path + bestResultFile();
|
string bestFileName = path + bestResultFile();
|
||||||
@ -173,6 +179,10 @@ namespace platform {
|
|||||||
cerr << Colors::MAGENTA() << "File " << bestFileName << " doesn't exist." << Colors::RESET() << endl;
|
cerr << Colors::MAGENTA() << "File " << bestFileName << " doesn't exist." << Colors::RESET() << endl;
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
auto dateWrite = filesystem::last_write_time(bestFileName);
|
||||||
|
if (dateWrite < maxDate) {
|
||||||
|
maxDate = dateWrite;
|
||||||
|
}
|
||||||
auto data = loadFile(bestFileName);
|
auto data = loadFile(bestFileName);
|
||||||
if (first) {
|
if (first) {
|
||||||
// Get the number of datasets of the first file and check that is the same for all the models
|
// Get the number of datasets of the first file and check that is the same for all the models
|
||||||
@ -187,12 +197,13 @@ namespace platform {
|
|||||||
}
|
}
|
||||||
table[model] = data;
|
table[model] = data;
|
||||||
}
|
}
|
||||||
|
table["dateTable"] = ftime_to_string(maxDate);
|
||||||
return table;
|
return table;
|
||||||
}
|
}
|
||||||
void BestResults::printTableResults(set<string> models, json table)
|
void BestResults::printTableResults(set<string> models, json table)
|
||||||
{
|
{
|
||||||
cout << Colors::GREEN() << "Best results for " << score << endl;
|
cout << Colors::GREEN() << "Best results for " << score << " as of " << table.at("dateTable").get<string>() << endl;
|
||||||
cout << "------------------------------------------" << endl;
|
cout << "------------------------------------------------" << endl;
|
||||||
cout << Colors::GREEN() << " # Dataset ";
|
cout << Colors::GREEN() << " # Dataset ";
|
||||||
for (const auto& model : models) {
|
for (const auto& model : models) {
|
||||||
cout << setw(12) << left << model << " ";
|
cout << setw(12) << left << model << " ";
|
||||||
|
Loading…
Reference in New Issue
Block a user