From 85a275f057271506e92a9ca42158b4940d194e1e Mon Sep 17 00:00:00 2001
From: Franck Dary <franck.dary@lis-lab.fr>
Date: Fri, 11 Jun 2021 14:20:41 +0200
Subject: [PATCH] Scores are now printed in  deterministic order

---
 Train.py | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/Train.py b/Train.py
index 7985a45..01c5aaf 100644
--- a/Train.py
+++ b/Train.py
@@ -79,11 +79,12 @@ def evalModelAndSave(debug, model, ts, strat, dicts, modelDir, devFile, bestLoss
     outFilename = modelDir+"/predicted_dev.conllu"
     Decode.decodeMode(debug, devFile, "model", ts, strat, rewardFunc, predicted, modelDir, model, dicts, open(outFilename, "w"))
     res = evaluate(load_conllu(open(devFile, "r")), load_conllu(open(outFilename, "r")), [])
-    scores = [res[col2metric[col]][0].f1 for col in predicted]
+    toEval = sorted([col for col in predicted])
+    scores = [res[col2metric[col]][0].f1 for col in toEval]
     score = sum(scores)/len(scores)
     saved = True if bestScore is None else score > bestScore
     bestScore = score if bestScore is None else max(bestScore, score)
-    devScore = ", Dev : "+" ".join(["%s=%.2f"%(col2metric[list(predicted)[i]], scores[i]) for i in range(len(predicted))])
+    devScore = ", Dev : "+" ".join(["%s=%.2f"%(col2metric[toEval[i]], scores[i]) for i in range(len(toEval))])
   if saved :
     torch.save(model, modelDir+"/network.pt")
   for out in [sys.stderr, open(modelDir+"/train.log", "w" if epoch == 1 else "a")] :
-- 
GitLab