From e824fc9ec147fc7b94b5493bc96e7a7127a33c01 Mon Sep 17 00:00:00 2001 From: YurenHao0426 Date: Fri, 7 Aug 2026 12:57:26 -0500 Subject: fix: freeze constant update calibration after one probe --- experiments/rain_ep_bias_train.py | 3 +++ experiments/rain_ep_dillavou_smoke.py | 10 ++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) (limited to 'experiments') diff --git a/experiments/rain_ep_bias_train.py b/experiments/rain_ep_bias_train.py index 79e9d6b..fa62137 100644 --- a/experiments/rain_ep_bias_train.py +++ b/experiments/rain_ep_bias_train.py @@ -54,6 +54,7 @@ def parse_args() -> argparse.Namespace: parser.add_argument( "--dillavou-drift-ratio", type=float, default=0.0, help="zero is the exact fixed update-offset model from Dillavou et al.") + parser.add_argument("--dillavou-calibration-steps", type=int, default=1) parser.add_argument("--predictor-rate", type=float, default=0.1) parser.add_argument( "--neutral-cadence", type=int, default=1, @@ -207,6 +208,7 @@ def main() -> None: mode=args.mode, bias_ratio=args.bias_ratio, predictor_rate=args.predictor_rate, + calibration_steps=args.dillavou_calibration_steps, neutral_cadence=args.neutral_cadence, seed=args.seed + 1729) attach_to_rain_estimator(estimator, corrector) @@ -351,6 +353,7 @@ def main() -> None: "mode": args.mode, "bias_ratio": args.bias_ratio, "dillavou_drift_ratio": args.dillavou_drift_ratio, + "dillavou_calibration_steps": args.dillavou_calibration_steps, "predictor_rate": args.predictor_rate, "neutral_cadence": args.neutral_cadence, "layer_calibration_steps": args.layer_calibration_steps, diff --git a/experiments/rain_ep_dillavou_smoke.py b/experiments/rain_ep_dillavou_smoke.py index d4a634a..9519210 100644 --- a/experiments/rain_ep_dillavou_smoke.py +++ b/experiments/rain_ep_dillavou_smoke.py @@ -70,9 +70,11 @@ def main() -> None: assert fixed_relative_error < 2e-6, fixed_relative_error constant = DillavouUpdateCorrector( - mode="constant", bias_ratio=0.2, predictor_rate=1.0, seed=41) + mode="constant", bias_ratio=0.2, predictor_rate=1.0, + calibration_steps=1, neutral_cadence=0, seed=41) innovation = DillavouUpdateCorrector( - mode="innovation", bias_ratio=0.2, predictor_rate=1.0, seed=41) + mode="innovation", bias_ratio=0.2, predictor_rate=1.0, + calibration_steps=1, neutral_cadence=0, seed=41) corrected_constant = constant.apply(clean_a, parameters_a) corrected_innovation = innovation.apply(clean_a, parameters_a) constant_error = max( @@ -85,6 +87,10 @@ def main() -> None: ) assert constant_error < 2e-7, constant_error assert innovation_error < 2e-7, innovation_error + constant.apply(clean_b, parameters_b) + innovation.apply(clean_b, parameters_b) + assert constant.debiaser.neutral_observations == 1 + assert innovation.debiaser.neutral_observations == 1 # Integration check: the corruption is attached after Rain's hand-written # local EP estimator and introduces no autograd graph. -- cgit v1.2.3