Add causal person track GRU residual experiment

This commit is contained in:
Xin Wang
2026-09-07 00:30:23 +08:00
parent 9fc4577aea
commit 4aed4697a5
15 changed files with 1185 additions and 43 deletions
+10 -3
View File
@@ -26,11 +26,17 @@ def main():
if args.dataset is not None and metrics.get("dataset") != args.dataset:
raise ValueError(f"Dataset mismatch in {path}: {metrics.get('dataset')}")
if args.paired_deltas:
signature = (metrics.get("dataset"), metrics.get("sessions"), metrics.get("checkpoint_epoch"),
# Candidates may select different best epochs on the same dev set.
# Match the maximum training budget, not the selected epoch.
training_epochs = metrics.get(
"checkpoint_training_epochs",
metrics.get("checkpoint_epoch"),
)
signature = (metrics.get("dataset"), metrics.get("sessions"), training_epochs,
metrics.get("checkpoint_train_sessions"), metrics.get("checkpoint_dev_sessions"),
metrics.get("loss"), metrics.get("layer_fusion"))
if comparison_signature is not None and signature != comparison_signature:
raise ValueError(f"Paired runs have different splits/epochs/loss/fusion: {path}")
raise ValueError(f"Paired runs have different splits/budget/loss/fusion: {path}")
comparison_signature = signature
score = metrics[args.protocol]
first = score["horizons"][0]
@@ -54,7 +60,8 @@ def main():
if args.paired_deltas:
print("\nPaired deltas (percentage points; same column order; matching seeds only)")
for treatment, control in (("audio", "baseline"), ("visual", "baseline"),
("av", "baseline"), ("av", "audio")):
("av", "baseline"), ("av", "audio"),
("track_gru", "pooled")):
left, right = by_seed.get(treatment, {}), by_seed.get(control, {})
seeds = sorted(left.keys() & right.keys())
if not seeds: