Repository navigation
Publish the YOLO11x perspective-tiles detections: y11x_tiles + six seed legs (#258, #51, #135) - #259
Conversation
The strongest YOLO arm (y11x_tiles) and the six seed-variance legs of #135 lived only in makelab2's .model_cache, so every number they produced was reproducible on one machine. Exported from that cache (64 files, 3.1 MB) with export_model_cache.py and --verify'd identical; a compare.py re-score of bend from the same cache reproduces the committed seed-variance report row for row. Registered all seven legs in rampnet/roster.py and regenerated everything that reads the roster: the scoreboard (JSON, docs, figures), the roster table, the #150 reproduction proof and the #35 cascade summary (which only gains "not run" rows). The scoreboard's annapolis sentence is rewritten: the tiles arm (F1 0.640) is now the strongest challenger there, above Claude Fable 5 (0.611). docs/replication.md records the export commands and where the sha256-matched checkpoints live. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Independent review, round 1 (head
|
Round-1 review fixes on PR 259: - operating_point_parity_51.md: tiles detections are published and the arm is registered; the paired test is "not run", its inputs committed; y11x_pano remains unpublished. - yolo_geometry_51.md: two of three arms now re-score from a clean clone; checkpoints still unpublished. - rampnet1_report.md: dated "since published" note, claims unchanged. - eval_protocol_150.md: 239 cells / 28 legs / 2,390 fields, plus a dated revision entry. - model_scoreboard.md: budapest bullet covers four YOLO arms (0.221-0.319); tiles legs' 7/8 macro F1 flagged beside the Fable caveat. - cascade_cost_35.md: section (d) covers challengers published at the time; the tiles legs are listed under gaps. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Round-1 review fixes (commit c7a60f0)All seven findings are fixed, each one doc prose only. I re-derived every number from
Checks
🤖 Generated with Claude Code — Opus 5.5, claude-opus-5-5 |
Independent re-review, round 2 (head
|
…ions (#259 re-review) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Re-review findings fixed in 137e34b:
🤖 Generated with Claude Code — Opus 5.5, claude-opus-5-5 |
Seed legs are one model retrained from other seeds. On the scoreboard they gave YOLO seven rows where RampNet, with nine seed replicates of its own, has one, and they invited quoting the best seed (annapolis: seed-1 best.pt 0.655 against the published arm's 0.640). Run-to-run variance already has its own write-up in docs/seed_variance_51_135.md. - roster: new `seed_of` field and SEED_LEGS; set on the six legs. They stay published and registered. - scoreboard: legs() skips seed legs; the JSON lists them under `off_scoreboard`, and model_scoreboard.md names each one, so the omission is stated rather than silent. A prose rule pins the count. - Regenerated: scoreboard JSON, both docs' generated tables, figures, and eval_protocol_150/reproduction.json (185 scoreboard cells, was 239). - Tests: coverage map and leg count updated; new test that every seed leg is off the board, listed in the JSON, and named on the page. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… every leg is scored Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Generated files re-derived rather than hand-resolved: scoreboard JSON, tables and figures, eval_protocol_150 reproduction (197 cells, was 187 on main), cascade_cost_35 summary. Prose counts fixed by hand: 22 legs over 14 splits, ten partial legs, y11x_tiles at 7/9 pooled (never run on laurens_mapillary or juneau), 237 published files / 29.8 MB. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Generated files re-derived: scoreboard JSON, tables and figures, eval_protocol_150 reproduction (224 cells), cascade_cost_35 summary. Prose: 23 model legs; nine partial legs, six of them one-split; y11x_tiles noted beside the new Opus 5.5 headline and as the leading supervised baseline on annapolis; 264 published files / 30.6 MB. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The merge of #261 resolved eval_protocol_150.md's Result paragraph to main's 187 / 21 legs; the proof now covers 224 cells / 23 legs / 2,240 fields. replication.md's scoreboard check row excludes the seed legs; roster.py no longer miscounts its property list; a roster test requires seed_of to name a registered, non-seed parent and a seed leg to be non-standing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Independent re-review, round 3 (head 24069f4, covering 137e34b..24069f4): Ready to mergeThis round covers everything since the last reviewed change. That is the seed-leg change (6784f05), its fixes (c25bf65), and the merges of #260 (704c58f) and #261 (24069f4). The authoring session had ended, so the review ran from another session. Verified
Fixed in 600d497, plus a PR-body update
Not done (optional)
🤖 Generated with Claude Code — Opus 5.5, claude-opus-5-5 |
tests/test_scoreboard.py: both sides added tests at the same place; kept both. scoreboard_by_split.png regenerated from the merged board (y11x_tiles lands in the partial group at 0.667, 7/9). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…#267 Conflicts, and how each was resolved: Generated artifacts (regenerated, never hand-merged): - analysis_out/scoreboard.json, docs/figures/scoreboard_by_split.png, docs/figures/scoreboard_f1.png, and the generated blocks of docs/model_scoreboard.md (partial table, by-split matrix) and docs/model_comparison.md (per-split "Also scored" lines): scoreboard.py. The board is 23 legs: 15 full-coverage (Vistas 1024 now among them, 0.519) and 8 partial (y11x_tiles 7/9 at 0.667, claude-opus-5 low 8/9, six one-split legs). The six y11x_tiles seed legs stay off_scoreboard. - analysis_out/eval_protocol_150/reproduction.json: eval_protocol_150.py. 233 scoreboard cells (main's 224 + the 9 Vistas cells), 23 legs, 2,330 fields; 30 benchmark_eval cells; 0 differing, 0 unchecked. - analysis_out/cascade_cost_35/summary.json: cascade_cost_35.py --summary. The gaps list now has both sides' "pair was not run" rows (Vistas 1024 on its new splits, and the seven y11x_tiles legs). Hand-written prose and tests, with counts recomputed from the regenerated board: - docs/model_scoreboard.md: "Eight legs have not run every pooled split - six of them only one" (main said nine with Vistas at 5/9; the PR said seven without y11x_tiles), in the section opener and the "What is missing" bullet. That bullet keeps the PR's wording (Vistas 1024 is in the headline) and main's y11x_tiles/seed-leg prose. The Vistas budapest sentence now quotes the four YOLO arms' 0.221-0.319, since y11x_tiles is at the top of that range. - docs/replication.md: 273 files, 31.3 MB (MiB, the doc's convention) in benchmark/model_detections/ (main's 264 + the 9 Vistas files). The breakdown table already sums to 273. - tests/test_scoreboard.py: kept both sides. The PR's test_the_vistas_parity_arm_is_pooled and test_partial_footer_counts_the_board, and main's by_split_rows/held_out_footer tests and test_seed_legs_are_named_but_not_scored. The coverage map had already auto-merged correctly (y11x_tiles 7/9, no Vistas 1024). Stale counts outside the conflicts, fixed the same way: - docs/eval_protocol_150.md: 224 -> 233 cells, 2,240 -> 2,330 fields, and the PR's update note says 233 (was 224) with 23 legs (it said 223 and 22). - docs/README.md: twenty-two -> twenty-three model legs. - docs/claude_newest_ids.md: Opus 5.5 is no longer "the only" full-coverage model besides the open detectors with pooled recall above RampNet's. Vistas 1024 (0.836) joined the pool. "Highest pooled recall apart from the two open detectors" in model_scoreboard.md still holds. - docs/vistas_transfer_126.md: the YOLO budapest range is 0.221-0.319. #262's Gemini manual_gold note in model_scoreboard.md is unchanged. Checks: scoreboard.py --check, eval_protocol_150.py --check, pytest (3360 passed, 7 skipped), check_all.py --ci (22 passed, 3 skipped). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
eval_protocol_150.md: keep both dated notes; the laurens_gsv note quotes the post-merge counts (224 cells, 13 op_cache cells). All checks re-run clean. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
What
Publishes the per-panorama detections of the seven YOLO11x perspective-tiles legs, which until now existed only in makelab2's
.model_cache:y11x_tiles, the strongest YOLO arm (Train a supervised YOLO baseline (YOLO11 / YOLO26) on the RampNet dataset — isolate architecture vs. data #51,docs/yolo_geometry_51.md), ten splitsy11x_tiles_s{1,2}_ep44,y11x_tiles_s3_ep42,y11x_tiles_s{1,2,3}_best, nine splits (nobudapest_district5)64 files, 3.1 MB, under
benchmark/model_detections/. Found while checking the inputs for #258's YOLO rung; audit in the #51 comments.How it was checked
export_model_cache.pyon makelab2 against the cache that scored the published numbers (A40, ultralytics 8.4.120). The cache key includes a SHA-1 of the weights file, so each file holds the detections of the exact checkpoint that was scored.--verify: 64 pairs score identically to the cache, 0 uncached.compare.pyre-score of bend from the same cache, in a clean checkout ofmain, matches every row ofdocs/data/seed_variance_51_135/yolo/bend_tiles.txt.env.txt. So do the copies on klone, including the three_epcheckpoints recovered from Tillicum today.What else changed, and why
Everything that reads the roster had to be regenerated:
rampnet/roster.py: sevenstanding=Falseentries, like the pano trio. Not inSCORED_SPECS.docs/model_scoreboard.md,docs/model_comparison.mdtables, two figures, display names. Onlyy11x_tilesis on the board, in the partial table (7/9: nolaurens_mapillaryorjuneau), so no pooled number moves. The six seed legs are published and registered but kept off the board by a new roster field,seed_of;scoreboard.jsonlists them underoff_scoreboard.analysis_out/eval_protocol_150/reproduction.json: 224/224 scoreboard cells equal (23 legs, after the merges of Juneau (#254): reviewed, scored, registered as the ninth pooled US split #260 and Newest Claude ids on every split: Opus 5.5 and Fable 5.1 #261).analysis_out/cascade_cost_35/summary.json: only gains "published but not run" rows.docs/replication.md: file counts (264 files, 30.6 MiB after the merges), a ledger row, the exact export commands, and where the checkpoints are.One finding changes.
model_scoreboard.mdsaid Claude Fable 5 is the strongest challenger on annapolis (F1 0.611). With the tiles arm on the board it isn't: YOLO11x tiles is 0.640 (0.636–0.655 across seeds). Since #261, Claude Opus 5.5 (0.720) tops both. The sentence is rewritten to say so. It still describes Fable as the best zero-shot leg there. The pooled-table and pano-arm claims elsewhere are scoped tightly enough that they still hold; I checked.Decided
seed_ofkeeps one recipe from appearing seven times.Review
Round 1 review → fixes → round 2 re-review → fixes are in the comments (2026-10-19, through 137e34b). The later changes (6784f05, c25bf65 and the two merges of
main) had an independent re-review on 2026-10-20: ready to merge, with its fixes in 600d497.🤖 Generated with Claude Code — Opus 5.5, claude-opus-5-5