Spaces:
Sleeping
Sleeping
| # evaluator.py | |
| import numpy as np | |
| def print_multi_seed_summary(results, num_seeds): | |
| if not results: | |
| return | |
| strict_successes = [r for r in results if r['strict_success']] | |
| loose_successes = [r for r in results if r['loose_success']] | |
| strict_rate = len(strict_successes) / num_seeds * 100 | |
| loose_rate = len(loose_successes) / num_seeds * 100 | |
| avg_jumps_all = np.mean([r['jumps'] for r in results]) | |
| avg_time = np.mean([r['wall_time'] for r in results]) | |
| print("\n=== Multi-Seed Statistics Summary ===") | |
| print(f"Strict success rate: {strict_rate:.2f}% ({len(strict_successes)}/{num_seeds})") | |
| print(f"Loose success rate: {loose_rate:.2f}% ({len(loose_successes)}/{num_seeds})") | |
| print(f"Jumps avg: {avg_jumps_all:.2f}") | |
| print(f"Average wall time per seed: {avg_time:.1f}s") | |
| if strict_successes: | |
| print(f"\nAverages over strict successes:") | |
| print(f" Geo dist: {np.mean([r['final_geo_dist'] for r in strict_successes]):.6f}") | |
| print(f" Max B: {np.mean([r['max_inharm_b'] for r in strict_successes]):.8f}") | |
| print(f" Speed std: {np.mean([r['speed_rel_std'] for r in strict_successes]):.6f}") | |
| print(f" Damping RMSE: {np.mean([r['damping_rmse'] for r in strict_successes]):.4f}") | |
| print(f" Freq RMSE: {np.mean([r['freq_rmse'] for r in strict_successes]):.4f}") | |
| # print(f" Raw_lin_b: {np.mean([r['raw_lin_b'] for r in strict_successes]):.2f}") | |
| # print(f" Raw_quad_b: {np.mean([r['raw_quad_b'] for r in strict_successes]):.2f}") |