From 12b2b78d6963c1a074c63e30135c0641f19b85fc Mon Sep 17 00:00:00 2001 From: YurenHao0426 Date: Sat, 29 Aug 2026 13:28:44 -0500 Subject: exp: stress test SDIL calibration --- experiments/physical_grid_bias_p5.py | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) (limited to 'experiments/physical_grid_bias_p5.py') diff --git a/experiments/physical_grid_bias_p5.py b/experiments/physical_grid_bias_p5.py index 8757ad2..d7f781b 100644 --- a/experiments/physical_grid_bias_p5.py +++ b/experiments/physical_grid_bias_p5.py @@ -140,6 +140,14 @@ def run_trial(job: dict) -> dict: seed=device_seed + 1_000_003 + task_index, ) ) + calibration_noise = job.get( + "calibration_noise_standard_deviation_v_per_s", 0.0) + if calibration_noise > 0.0: + calibration_rng = np.random.default_rng( + device_seed + 3_000_003 + task_index) + calibration_measurements = calibration_measurements + ( + calibration_rng.normal( + 0.0, calibration_noise, calibration_measurements.shape)) heldout_states, heldout_measurements = collect_neutral_observations( circuit, initial_gates, @@ -150,7 +158,10 @@ def run_trial(job: dict) -> dict: constant_predictor = make_predictor( calibration_states, calibration_measurements, degree=0) sdil_predictor = make_predictor( - calibration_states, calibration_measurements, degree=2) + calibration_states, + calibration_measurements, + degree=job.get("sdil_degree", 2), + ) predictors = { "constant": constant_predictor, "sdil": sdil_predictor, @@ -288,6 +299,12 @@ def parse_args() -> argparse.Namespace: parser.add_argument( "--device-seeds", default="20260829,20260830,20260831,20260832") parser.add_argument("--calibration-observations", type=int, default=16) + parser.add_argument( + "--calibration-noise-standard-deviation-v-per-s", + type=float, + default=0.0, + ) + parser.add_argument("--sdil-degree", type=int, default=2) parser.add_argument("--heldout-observations", type=int, default=64) parser.add_argument("--standard-epochs", type=int, default=600) parser.add_argument("--overclamp-epochs", type=int, default=1000) @@ -313,6 +330,9 @@ def main() -> None: "task": task, "device_seed": device_seed, "calibration_observations": args.calibration_observations, + "calibration_noise_standard_deviation_v_per_s": ( + args.calibration_noise_standard_deviation_v_per_s), + "sdil_degree": args.sdil_degree, "heldout_observations": args.heldout_observations, "standard_epochs": args.standard_epochs, "overclamp_epochs": args.overclamp_epochs, @@ -352,6 +372,9 @@ def main() -> None: "multiplier_output_offset_standard_deviation_v_per_s": 2.3, }, "calibration_observations_per_trial": args.calibration_observations, + "calibration_noise_standard_deviation_v_per_s": ( + args.calibration_noise_standard_deviation_v_per_s), + "sdil_polynomial_degree": args.sdil_degree, "calibration_scope": ( "per-edge degree-2 local predictor fitted once from neutral " "free=clamped observations and then frozen"), -- cgit v1.2.3