cmoyates
ac4393fcb4
docs: clarify pos_embed parameter intent in HieraBackbone
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 05:55:01 -03:30
cmoyates
cc2d31b435
feat(phase4d): shape + parity tests, fix attention transpose
...
Fix MaskUnitAttention output transpose (0,2,3,1,4 → 0,3,2,1,4) to
match PyTorch transpose(1,3) token ordering for windowed attention.
Parity results (4 stages):
Stage 0: max_abs 2.9e-4, mean 1.6e-5
Stage 1: max_abs 1.3e-4, mean 1.3e-5
Stage 2: max_abs 1.1e-2, mean 5.2e-5 (16 blocks, expected drift)
Stage 3: max_abs 5.8e-4, mean 2.6e-5
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 05:51:36 -03:30
cmoyates
0d6d41cb45
feat(phase4c): weight loading + pos_embed bicubic interpolation
...
HieraBackbone.load_checkpoint() loads safetensors, strips encoder.model.
prefix, bicubic-interpolates pos_embed from 512x512 to 128x128 tokens.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 05:48:40 -03:30
cmoyates
853efbe2cf
feat(phase4a): MLX Hiera backbone with unroll/reroll parity
...
Port timm hiera_base_plus_224 to MLX: PatchEmbed, MaskUnitAttention,
HieraBlock, unroll/reroll, HieraBackbone. 4 NHWC feature maps at
strides 4/8/16/32. backbone.py now re-exports from hiera.py.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 05:45:43 -03:30
cmoyates
7315a082df
chore: add phase 4-6 prompts, fix naming, note zoxide cd issue
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 05:20:40 -03:30
Cristopher Yates
150c974eed
feat(phase3): PyTorch→MLX weight converter ( #1 )
...
* feat(phase3): PyTorch→MLX weight converter + safetensors output
365 keys mapped (367 source - 2 num_batches_tracked skipped).
Conv weights transposed (O,I,H,W→O,H,W,I), refiner stem remapped,
4ch patch embed preserved. 12 conversion tests + diagnostic report.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix(phase3): conv allowlist, unused var, test fixture
- Replace _is_conv_weight heuristic with explicit CONV_WEIGHT_KEYS frozenset (15 keys)
- Remove unused `skipped` list from convert_state_dict
- Module-scoped pytest fixture eliminates 11 redundant checkpoint loads
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 05:16:56 -03:30
cmoyates
091261ccff
feat(phase2): MLX decoder + refiner with parity tests
...
- MLP, DecoderHead (SegFormer-style), RefinerBlock, CNNRefinerModule
- All NHWC native, GroupNorm with pytorch_compatible=True
- Layout utils: NCHW<->NHWC, conv weight transpose (OIHW->OHWI)
- Dump script extended to export decoder/refiner weights
- Parity: decoder max_abs ~5e-6, refiner max_abs ~1e-5
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 05:00:00 -03:30
cmoyates
393dd0d5a7
chore: add remaining test stubs and script placeholders
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 04:49:09 -03:30
cmoyates
9b07961619
feat(phase1): PyTorch reference harness + fixture tests
...
Dump script loads CorridorKey checkpoint, runs deterministic forward
pass (seed=42, 512x512), saves 14 intermediate tensors to golden.npz.
Includes pos_embed bicubic interpolation for resolution mismatch.
32 shape/dtype/range validation tests all passing.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 04:49:01 -03:30
cmoyates
897242d200
init: repo scaffolding, deps, prompts, plan
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 04:48:51 -03:30