diff options
| author | YurenHao0426 <Blackhao0426@gmail.com> | 2026-07-22 15:33:31 -0500 |
|---|---|---|
| committer | YurenHao0426 <Blackhao0426@gmail.com> | 2026-07-22 15:33:31 -0500 |
| commit | a402546b794bf69ab79bce7ed6365cbdd1e7d15a (patch) | |
| tree | 9ee9aced9dc99c1c54401a3ddc3493280acb344b /experiments/analyze_kp_innovation_full.py | |
| parent | 36ca1aeb462048fd7cf59d4c97c06a6521545301 (diff) | |
audit: require finite mixed-traffic diagnostics
Diffstat (limited to 'experiments/analyze_kp_innovation_full.py')
| -rw-r--r-- | experiments/analyze_kp_innovation_full.py | 30 |
1 files changed, 26 insertions, 4 deletions
diff --git a/experiments/analyze_kp_innovation_full.py b/experiments/analyze_kp_innovation_full.py index c01468b..efe0f8a 100644 --- a/experiments/analyze_kp_innovation_full.py +++ b/experiments/analyze_kp_innovation_full.py @@ -15,6 +15,20 @@ def mean_early(values): return sum(float(value) for value in values[:count]) / count +def numeric_leaves(value): + """Yield every numeric audit value while excluding boolean flags.""" + if isinstance(value, bool) or value is None: + return + if isinstance(value, (int, float)): + yield float(value) + elif isinstance(value, dict): + for child in value.values(): + yield from numeric_leaves(child) + elif isinstance(value, (list, tuple)): + for child in value: + yield from numeric_leaves(child) + + def require_pass(path, protocol): with open(path) as handle: record = json.load(handle) @@ -106,10 +120,6 @@ def main(): float(mixed["traffic_rms"]), ]) - all_finite = all(record["final"]["finite"] for record in records.values()) - all_finite = all_finite and all(math.isfinite(value) for value in ( - trajectory_values + list(accuracies.values()) + [innovation_early, - innovation_raw_early])) initial_ratio_errors = [] total_macs = {} queries = {} @@ -130,6 +140,18 @@ def main(): diagnostics["innovation"]["mean_feedback_forward_cosine"]) late_feedback_cosine = sum(float(value["mean_feedback_forward_cosine"]) for value in tracking["innovation"][150:]) / 50 + audit_values = trajectory_values + [innovation_early, innovation_raw_early, + final_feedback_cosine, + late_feedback_cosine, + matched_norm_error] + for record in records.values(): + audit_values.extend(numeric_leaves(record["final"])) + audit_values.extend(numeric_leaves(record["diagnostics"])) + audit_values.extend(numeric_leaves(record["traffic_calibration"])) + audit_values.extend(numeric_leaves(record["predictor_warmup"])) + all_finite = all(record["final"]["finite"] for record in records.values()) + all_finite = all_finite and all( + math.isfinite(value) for value in audit_values) checks = { "records_trajectories_and_diagnostics_finite": all_finite, |
