summaryrefslogtreecommitdiff
path: root/experiments/physical_grid_calibration_p6.py
diff options
context:
space:
mode:
authorYurenHao0426 <Blackhao0426@gmail.com>2026-08-29 13:33:51 -0500
committerYurenHao0426 <Blackhao0426@gmail.com>2026-08-29 13:33:51 -0500
commitda51aa844dc1895b5c149cc1533566c53dded3c2 (patch)
tree685ba4b779424c6474348df179aea70e95f28ad0 /experiments/physical_grid_calibration_p6.py
parent12b2b78d6963c1a074c63e30135c0641f19b85fc (diff)
fix: count divergent physical calibration trials
Diffstat (limited to 'experiments/physical_grid_calibration_p6.py')
-rw-r--r--experiments/physical_grid_calibration_p6.py21
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