summaryrefslogtreecommitdiff
path: root/experiments/physical_grid_bias_p5.py
diff options
context:
space:
mode:
authorYurenHao0426 <Blackhao0426@gmail.com>2026-08-29 13:28:44 -0500
committerYurenHao0426 <Blackhao0426@gmail.com>2026-08-29 13:28:44 -0500
commit12b2b78d6963c1a074c63e30135c0641f19b85fc (patch)
tree128c39092c76a1e1b82e07e2cf7d84a7bec92aa1 /experiments/physical_grid_bias_p5.py
parent646f890833e2d3ff159debe45c186988e7081b16 (diff)
exp: stress test SDIL calibration
Diffstat (limited to 'experiments/physical_grid_bias_p5.py')
-rw-r--r--experiments/physical_grid_bias_p5.py25
1 files changed, 24 insertions, 1 deletions
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"),