diff options
| author | YurenHao0426 <Blackhao0426@gmail.com> | 2026-08-29 13:33:51 -0500 |
|---|---|---|
| committer | YurenHao0426 <Blackhao0426@gmail.com> | 2026-08-29 13:33:51 -0500 |
| commit | da51aa844dc1895b5c149cc1533566c53dded3c2 (patch) | |
| tree | 685ba4b779424c6474348df179aea70e95f28ad0 /experiments/physical_grid_calibration_p6.py | |
| parent | 12b2b78d6963c1a074c63e30135c0641f19b85fc (diff) | |
fix: count divergent physical calibration trials
Diffstat (limited to 'experiments/physical_grid_calibration_p6.py')
| -rw-r--r-- | experiments/physical_grid_calibration_p6.py | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/experiments/physical_grid_calibration_p6.py b/experiments/physical_grid_calibration_p6.py index 678f990..b849d83 100644 --- a/experiments/physical_grid_calibration_p6.py +++ b/experiments/physical_grid_calibration_p6.py @@ -37,13 +37,28 @@ def conditions() -> list[dict]: def run_job(job: dict) -> dict: - result = run_trial(job) + try: + result = run_trial(job) + except RuntimeError as error: + return { + "condition": job["condition"], + "task_index": job["task_index"], + "input_diameter_v": job["task"]["input_diameter_v"], + "device_seed": job["device_seed"], + "status": "circuit_solver_failure", + "failure_message": str(error), + "classification_error": 1.0, + "hinge_loss_v2": None, + "max_abs_clamp_displacement_v": None, + "heldout_bias_rmse_v_per_s": None, + } method = result["methods"]["sdil"] return { "condition": job["condition"], "task_index": result["task_index"], "input_diameter_v": result["input_diameter_v"], "device_seed": result["device_seed"], + "status": "completed", "classification_error": method["classification_error"], "hinge_loss_v2": method["hinge_loss_v2"], "max_abs_clamp_displacement_v": ( @@ -68,8 +83,12 @@ def summarize(records: list[dict], settings: list[dict]) -> dict: "trials": len(selected), "mean_classification_error": float(np.mean(errors)), "zero_error_fraction": float(np.mean(errors == 0.0)), + "circuit_solver_failure_fraction": float(np.mean([ + record["status"] != "completed" for record in selected + ])), "median_heldout_bias_rmse_v_per_s": float(np.median([ record["heldout_bias_rmse_v_per_s"] for record in selected + if record["heldout_bias_rmse_v_per_s"] is not None ])), } return result |
