Skip to content

docs: state SMP DPT ViT-B16 conversion scope - #41

Merged
noelEOS merged 3 commits into
mainfrom
docs/smp-dpt-vit-claim
Nov 3, 2026
Merged

noelEOS merged 3 commits into
mainfrom
docs/smp-dpt-vit-claim

Conversation

@noelEOS

@noelEOS noelEOS commented Nov 3, 2026 •

Copy link
Copy Markdown
Owner

tensor-ee converts SMP DPT models with a timm ViT-B/16 encoder at 224 × 224.

Document the supported recognizers and distinguish graph identity, offline mirror agreement, live agreement and model accuracy. Full width remains offline only and misses the unchanged 1e-4 absolute target against both float32 and float64 PyTorch, with zero argmax flips. Live composition agreement covers only the reduced encoder twin with rank-at-most-4 projection weights and the structured reduced DPT twin (7 requests, sampled head/logit readouts), plus individual blocks' recorded settings. Random weights establish no model accuracy. The full-width staged live run remains a follow-up.

Base revision: bb76ab9.
Current head: e69b635.

Merged origin/main at 16d1dbe (test-only UPerNet rounding-probe fix) without rebasing.

Changes by layer

  • Documentation: README model table; docs index, API, converter guide, model evidence and both ViT target guides. Cite the converter gates, offline records, reduced live records and full-width dtype evidence; state exclusions explicitly.
  • Tests: tests/test_dpt_registry.py pins main a988d79's 19 operation keys to named library functions and METADATA references, independently of the module's import-time snapshot. Its name/docstring state that it proves function/metadata identity and key order, not adapter preservation.
  • Catalogue: regenerated with tools/block_catalogue.py; already current, so no diff.
  • Library: no changes.

Review follow-up and current-head validation

Review fix round 1 reconciles the model-evidence page with the passing reduced encoder rerun while preserving the failed attempt as history. Both target introductions now point to the converter graph-identity gates and the DPT recognizer. The API explicitly attributes the full-width numerical target failure to the offline NumPy mirror and notes that float32 PyTorch differs from float64 by more. No evidence records, code or tests changed in that fix.

On clean merged head e69b635:

  • python tools/block_catalogue.py --check: in sync.
  • python -m pytest -q tests/test_docs.py tests/test_history_citations.py tests/test_x08_docs_and_api.py: 25 passed (138.62s).
  • Same docs files with timm and SMP blocked: 20 passed, 5 skipped (6.15s).

On the clean doc-fix commit 18789e6 before merging main: G1 again matched 36 fixture graphs, with 9 trained not compared; G1-ext again matched 19/19; catalogue, reduced DPT offline check and 7-request plan passed; docs tests 25 passed and blocked-package tests 20 passed, 5 skipped.

Initial-head validation (7111496)

All Python checks used two threads and PYTHONPATH=..

  • python tools/graph_identity.py --check docs/evidence/l00-golden-graphs.json: 36 fixture graphs equal; 9 trained graphs not compared (no --resources). Passed before and after the change.
  • python tools/graph_identity.py --check-ext docs/evidence/x00-g1ext-golden-graphs.json: 19/19 equal. Passed before and after the change. Asset-backed SegFormer raw-input environment differences were reported; serialized graphs and weight-shard plans matched.
  • python tools/block_catalogue.py --check: in sync.
  • python tools/live_fixtures.py --offline vit_dpt_reduced --output <temporary-output>: passed, zero cloud calls. Largest absolute mirror/PyTorch error 1.862645149230957e-9 (fusion3); head and logits each 9.313225746154785e-10.
  • python tools/live_fixtures.py --plan vit_dpt_reduced: within budget, 7 requests, 0 assets/tasks; largest request 1,944,662 bytes and 31,360 values.
  • python -m pytest -q tests/test_docs.py tests/test_history_citations.py tests/test_x08_docs_and_api.py tests/test_dpt_registry.py: 33 passed.
  • Same four files with timm and segmentation_models_pytorch blocked through temporary sitecustomize: 28 passed, 5 skipped; optional-model cases skipped cleanly.

Initial-head CI run 41617152020 passed all three jobs: core Python 3.11 and 3.12 each reported 2879 passed, 552 skipped; optional-models reported 3666 passed, 27 skipped, 1 xfailed. Each job also reported 190 subtests passed. Updated-head CI run 41621088407 passed all three jobs on e69b635 (core Python 3.11, core Python 3.12 and optional-models). No live run, exports or downloads were performed.

Limits and follow-up

Full-width DPT mirror/float32 errors: fusion3 6.03e-4, logits 3.51e-4. Mirror/float64 errors: fusion3 1.18e-4, logits 1.50e-4. Activations approach 190 (float32 spacing about 1.5e-5); float32 PyTorch itself differs from float64 by more. These observations do not relax the absolute target. Full-width live validation requires the staged runner and separate approval.

ViT-S, ViT-L, DeiT-III, DINOv2 and patch 8 remain later work. Fused attention, register tokens and other readouts are outside this claim. No model accuracy is claimed.

@noelEOS
noelEOS marked this pull request as ready for review November 3, 2026 11:03
@noelEOS
noelEOS merged commit 7eb3e47 into main Nov 3, 2026
3 checks passed
@noelEOS
noelEOS deleted the docs/smp-dpt-vit-claim branch November 3, 2026 11:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant