You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
P1:
1. The headline stated 96.06 +/- 0.16% -- an n=2 standard deviation, one degree
of freedom, in the largest text on the page. ADR-012 refuses a different
number on exactly that ground and the sprint-6 analysis calls an n=2 std
nearly meaningless, so the repo taught readers to catch this. Now "96.06%
test top-1 -- two seeds, 95.94 and 96.17", with both values in the table and
a line saying why. Same for validation and top-5.
2. "About 14%" collapsed ADR-012's deliberate 11-17% range to its midpoint.
README now carries the range, and ADR-012's number-of-record clause is
updated to match -- it named "about 14%", which this change would otherwise
have made stale, which is the drift that clause exists to prevent. PRD
aligned too.
3. "expect ~0.1-0.2; 0.26 observed" put the observation outside its own stated
range, in the Reproducibility section. Now "typically ~0.1-0.2, and 0.26 is
the largest seen".
4. Added the CI badge and a Tests and CI section: 123 tests, what they cover,
CPU-only in ~90s, the gpu marker and the dataset skips, the 3.10/3.12 matrix
-- and the three real defects the pipeline caught.
P2:
5. Fast-mode mechanism corrected. It said reduction order depends on machine
state; C8.1b showed permitting nondeterministic algorithms changed nothing,
so the mechanism is kernel selection, and different kernels produce different
floating-point results.
6. "Machine state does not move the number" softened to what three 10-epoch runs
on one GPU support. Ablation count fixed: seven further, being the other
seven of the eight-config Sprint 5 sweep -- the eighth is the crop-and-flip
row in the table. val-test gap given a unit; top-5 matched to the top-1
convention.
7. Opening clause now names the field and says what CIFAR-10 is, for readers who
do not already know. Profile link above the License heading.
"Known failure modes: Cats." untouched.
Copy file name to clipboardExpand all lines: PRD.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -242,7 +242,7 @@ Bands are estimates from the literature, not promises. If a stage underperforms
242
242
| Risk | Impact | Mitigation |
243
243
|---|---|---|
244
244
| Accuracy plateaus below 94% | Primary metric misses | Sprint 5 has a debug checklist: verify normalization stats, LR range test, confirm no val leakage, check wd is not applied to BN/bias |
245
-
| Bit-exact reproducibility unattainable on GPU | M2 misses | Measured in C8.1: `deterministic=true`**is** bit-exact here, including across a power-state change mid-run, at ~14% throughput cost. The default fast mode is not, and M2 states its measured spread instead of bounding it |
245
+
| Bit-exact reproducibility unattainable on GPU | M2 misses | Measured in C8.1: `deterministic=true`**is** bit-exact here, including across a power-state change mid-run, at roughly 11–17% throughput cost. The default fast mode is not, and M2 states its measured spread instead of bounding it |
246
246
| Test set used for model selection | Inflated, dishonest number | Sprint 1 carves a 5,000-image val split from train. Test set is touched **only** by `eval.py`, only at the end of a stage. Enforced by a test that asserts `Trainer` never receives the test loader |
247
247
| Scope creep into a framework | Never ships | Non-goals in §3 are binding; new ideas go to `docs/BACKLOG.md`|
248
248
| Long runs lost to a crash | Time waste | Checkpoint every epoch with resume from Sprint 3, not later |
0 commit comments