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