From da51aa844dc1895b5c149cc1533566c53dded3c2 Mon Sep 17 00:00:00 2001 From: YurenHao0426 Date: Sat, 29 Aug 2026 13:33:51 -0500 Subject: fix: count divergent physical calibration trials --- experiments/physical_grid_calibration_p6.py | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) (limited to 'experiments/physical_grid_calibration_p6.py') 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 -- cgit v1.2.3