From ad42bc9573fc0b2b319a72567822edf0dcbf78a5 Mon Sep 17 00:00:00 2001
From: Schneider Leo <leo.schneider@etu.ec-lyon.fr>
Date: Tue, 22 Apr 2025 10:17:39 +0200
Subject: [PATCH] add : ray result analysis

---
 image_ref/main_ray.py | 37 +++++++++++++++++++++++++++++++++----
 main_ray.py           | 31 ++++++++++++++++++++++++++++++-
 2 files changed, 63 insertions(+), 5 deletions(-)

diff --git a/image_ref/main_ray.py b/image_ref/main_ray.py
index 534d1c8..0d678aa 100644
--- a/image_ref/main_ray.py
+++ b/image_ref/main_ray.py
@@ -275,13 +275,42 @@ def main(args, gpus_per_trial=1):
 
     print("Best trial config: {}".format(best_result.config))
     print("Best trial final validation loss: {}".format(
-        best_result.metrics["loss"]))
+        best_result.metrics["val loss"]))
     print("Best trial final validation accuracy: {}".format(
-        best_result.metrics["accuracy"]))
+        best_result.metrics["val acc"]))
 
     test_model(best_result, args)
 
+
+def analyze_ray_res(storage_path, exp_name,args, gpus_per_trial=1):
+    experiment_path = os.path.join(storage_path, exp_name)
+    print(f"Loading results from {experiment_path}...")
+    trainable =  tune.with_resources(
+            tune.with_parameters(train_model, args=args),
+            resources={"cpu": 20, "gpu": gpus_per_trial}
+        )
+    restored_tuner = tune.Tuner.restore(experiment_path, trainable=trainable)
+    results = restored_tuner.get_results()
+
+    num_results = len(results)
+    print("Number of results:", num_results)
+    for i, result in enumerate(results):
+        if result.error:
+            print(f"Trial #{i} had an error:", result.error)
+            continue
+
+        print(
+            f"Trial #{i} finished successfully train loss of :",
+            result.metrics["train loss"], " train acc of :",
+            result.metrics["train cont acc"], " val loss of :",
+            result.metrics["val loss"], " val cont acc of :",
+            result.metrics["val cont acc"], " val acc of :",
+            result.metrics["val acc"]
+        )
+
+
 if __name__ == '__main__':
     args = load_args_contrastive()
-    print(args)
-    main(args)
+    analyze_ray_res()
+    # print(args)
+    # main(args)
diff --git a/main_ray.py b/main_ray.py
index 2a32229..a79fb47 100644
--- a/main_ray.py
+++ b/main_ray.py
@@ -244,7 +244,36 @@ essayer avec une loss pondérée ou pas pondérée
 
     test_model(best_result, args)
 
+def analyze_ray_res(storage_path, exp_name, args, gpus_per_trial=1):
+    experiment_path = os.path.join(storage_path, exp_name)
+    print(f"Loading results from {experiment_path}...")
+    trainable = tune.with_resources(
+        tune.with_parameters(train_model, args=args),
+        resources={"cpu": 20, "gpu": gpus_per_trial}
+    )
+    restored_tuner = tune.Tuner.restore(experiment_path, trainable=trainable)
+    results = restored_tuner.get_results()
+
+    num_results = len(results)
+    print("Number of results:", num_results)
+    for i, result in enumerate(results):
+        if result.error:
+            print(f"Trial #{i} had an error:", result.error)
+            continue
+
+        print(
+            f"Trial #{i} finished successfully train loss of :",
+            result.metrics["train loss"], " train acc of :",
+            result.metrics["train cont acc"], " val loss of :",
+            result.metrics["val loss"], " val cont acc of :",
+            result.metrics["val cont acc"], " val acc of :",
+            result.metrics["val acc"]
+        )
+
+
+
 if __name__ == '__main__':
     args = load_args()
     print(args)
-    main(args)
+    analyze_ray_res('/lustre/fswork/projects/rech/bun/ucg81ws/these/pseudo_image/image_ref/ray_results/','base_experiment',args)
+    # main(args)
-- 
GitLab