diff --git a/AGENTS.md b/AGENTS.md index 92af896..71c15ba 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -105,7 +105,7 @@ output. library layers, uses the reference model's `state_dict` names, takes NumPy arrays or `ServerArray`s as weights, and is not loaded by `import tensor_ee`. A random-weight model's numerical reference uses integer-generated weights with calibrated BatchNorm (CONTRIBUTING, - "Model references follow the same rule"). `compile_model` stays the + "Add a block", the paragraph "Model references follow the same rule"). `compile_model` stays the CNN path (`torch.fx` onto the R blocks): attention models go through the converter, which is extended with recognizers, never by routing them through `compile_model`. - **A new recognizer** follows CONTRIBUTING's "Add a recognizer": diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2639915..ebe7056 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -107,8 +107,11 @@ model. [`tests/test_graph_identity.py`](tests/test_graph_identity.py) refuses to generators while the G1 fixtures build. **Model references follow the same rule.** A random-weight model's numerical reference, -the PyTorch model its mirror is compared with, takes its weights from integer arithmetic -(`_fixed_weights`), never from a library's native random initialization. Native +the PyTorch model its mirror is compared with, takes its weights from integer arithmetic, +never from a library's native random initialization: a counter-based integer hash of each +parameter's name and position, identical on every platform, scaled per tensor to the +standard deviation the library's own initializer gives it, so the reference behaves like a +natively initialized model. Native initialization is not bit-identical across platforms, and it can let activations grow far beyond a trained model's. Its BatchNorm running statistics are then calibrated from a fixed set of integer-generated inputs, separate from the evaluation input: a fixed diff --git a/docs/api.md b/docs/api.md index 7ff14b2..1f03bfb 100644 --- a/docs/api.md +++ b/docs/api.md @@ -261,10 +261,13 @@ The caller prepares the crop and handles georeferenced relabeling. The [evidence summary](converter.md#smp-dpt-vit-b16-evidence-and-scope) keeps graph identity, offline mirror agreement, live agreement and model accuracy separate. Random-weight full-width and reduced conversions are byte-identical to their -hand-composed targets. Full width is offline only: the DPT offline NumPy mirror -misses the 1e-4 absolute target against both float32 and float64 PyTorch, with -0 argmax flips. Float32 PyTorch itself differs from float64 PyTorch by more -([numbers and dtype record](vit-b16-dpt224.md#numerical-scope)). Live agreement +hand-composed targets. Full width is offline only: with counter-based integer-hash +weights at native initializer scales and fixed BatchNorm calibration, head/logits +meet 1e-4 against float32 PyTorch (full-width errors 2.06e-5/2.01e-5, reduced +7.60e-6/7.29e-6; zero argmax flips). Every intermediate's error against float64 +PyTorch is no larger than float32 PyTorch's own; intermediate agreement within +1e-4 against float32 is not claimed +([scales, results and historical records](vit-b16-dpt224.md#numerical-scope)). Live agreement covers only the reduced encoder twin with rank-at-most-4 projection weights, the structured reduced DPT twin (`vit_dpt_reduced`, 7 requests, sampled head/logit readouts), and individual blocks' recorded settings. The full-width live run diff --git a/docs/converter.md b/docs/converter.md index b3e44bf..4a5a52f 100644 --- a/docs/converter.md +++ b/docs/converter.md @@ -613,20 +613,26 @@ one class token and cat readout, as in the example above. Four claims stay separ and [SMP DPT converter gate](../tests/test_smp_dpt_converter.py) convert random-weight models to graphs byte-identical to the hand-composed targets, at full width and reduced width. Both builds bind the same symbolic table reads; reduced inline - gates also compare random-weight literals. These gates establish graph identity, + gates also compare native SMP/timm random-weight literals, independently of + the calibrated integer numerical references. These gates establish graph identity, not numerical execution. - **Offline mirror agreement.** The [encoder evidence](vit-b16-encoder224.md) and [DPT numerical evidence](vit-b16-dpt224.md#numerical-scope) compare NumPy mirrors with PyTorch. The [reduced DPT fixture record](evidence/dpt-reduced-offline.json) - has largest absolute error 1.86e-9. Full width is **offline only** and does - **not meet the unchanged 1e-4 absolute target**: against float32 PyTorch, - fusion3 differs by 6.03e-4 and logits by 3.51e-4; against float64 PyTorch, - fusion3 differs by 1.18e-4 and logits by 1.50e-4. Activations reach about - 190, where one float32 step is about 1.5e-5. Float32 PyTorch itself differs - from float64 PyTorch by more (fusion3 6.13e-4, logits 3.70e-4); there are - **0 argmax flips**. The [dtype record](evidence/dpt-dtype-offline.json) - retains these failures; neither rounding scale nor unchanged decisions relaxes - the absolute target. + has largest absolute error 1.86e-9, using its unchanged compact fixture weights. + The final [hash-reference record](evidence/dpt-hash-offline.json) uses a + counter-based integer hash at each native initializer's standard deviation, + followed by fixed four-batch BatchNorm calibration. Head/logits meet 1e-4 + against float32 PyTorch: full-width errors 2.06e-5/2.01e-5, reduced errors + 7.60e-6/7.29e-6. Every intermediate's mirror/float64 error is no larger + than float32 PyTorch's own. Full-width fusion3 peaks at 51.93 (float32 + step 3.81e-6): mirror/float32 error 1.88e-4, mirror/float64 4.64e-5, + float32/float64 1.87e-4. This is an intermediate ordering claim, not + 1e-4 intermediate agreement against float32. Every recorded output has zero + argmax flips. The [native-init](evidence/dpt-dtype-offline.json), + [unscaled periodic](evidence/dpt-integer-offline.json), and + [fan-in periodic](evidence/dpt-fan-in-offline.json) records remain unchanged + as superseded history. Full-width agreement remains offline only. - **Live agreement.** It exists only for the [reduced ViT encoder twin](evidence/live-fixtures/20261103T022505Z-vit_encoder_reduced.json) with **rank-at-most-4 projection weights**, the diff --git a/docs/evidence/dpt-fan-in-offline.json b/docs/evidence/dpt-fan-in-offline.json new file mode 100644 index 0000000..472dfe7 --- /dev/null +++ b/docs/evidence/dpt-fan-in-offline.json @@ -0,0 +1,2253 @@ +{ + "kind": "dpt_fan_in_scaled_offline_comparison", + "schema_version": 1, + "status": "failed", + "revision": "80e92f3087f63c6d9407964a4695bcc9b6a6838a", + "dirty": false, + "cloud_calls": 0, + "command": "PYTHONPATH=. python tools/vit_b16_dpt224_numerics.py --output docs/evidence/dpt-fan-in-offline.json", + "input_seed": 14127, + "weights": "_fixed_weights pattern times per-tensor 2^k; fan-in RMS targets; unit norm affine; zero biases; fixed four-batch BN calibration; model.double()", + "input": "same float32 dyadic values converted exactly to double", + "fused_attention": false, + "versions": { + "python": "3.12.3", + "torch": "2.14.0+cpu", + "numpy": "2.5.3", + "timm": "1.0.30", + "segmentation-models-pytorch": "0.5.0", + "earthengine-api": "1.7.45" + }, + "claims": { + "absolute_tolerance": 0.0001, + "full": { + "final_float32_target_met": false, + "intermediate_float64_ordering_met": true + } + }, + "full": { + "config": { + "encoder_width": 768, + "heads": 12, + "depth": 12, + "indices": [ + 2, + 5, + 8, + 11 + ], + "intermediate": [ + 256, + 512, + 1024, + 1024 + ], + "fusion": 256 + }, + "initialization": { + "encoder.model.cls_token": { + "fan_in": null, + "q": -5, + "k": -1, + "rms": 0.034937424806935895, + "values": 768, + "pattern_square_sum": 61436, + "rule": "fixed_q_pattern", + "exact_values_asserted": true + }, + "encoder.model.pos_embed": { + "fan_in": null, + "q": -5, + "k": -1, + "rms": 0.03493845823044333, + "values": 151296, + "pattern_square_sum": 12103608, + "rule": "fixed_q_pattern", + "exact_values_asserted": true + }, + "encoder.model.patch_embed.proj.weight": { + "fan_in": 1536, + "q": -5, + "k": -1, + "rms": 0.03493855289287483, + "values": 1179648, + "pattern_square_sum": 94371790, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "encoder.model.patch_embed.proj.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.0.norm1.weight": { + "rule": "unit_norm_affine", + "rms": 1.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.0.norm1.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.0.attn.qkv.weight": { + "fan_in": 768, + "q": -5, + "k": -1, + "rms": 0.034938565480434995, + "values": 1769472, + "pattern_square_sum": 141557787, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "encoder.model.blocks.0.attn.qkv.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.0.attn.proj.weight": { + "fan_in": 768, + "q": -5, + "k": -1, + "rms": 0.03493853104974496, + "values": 589824, + "pattern_square_sum": 47185836, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "encoder.model.blocks.0.attn.proj.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.0.norm2.weight": { + "rule": "unit_norm_affine", + "rms": 1.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.0.norm2.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.0.mlp.fc1.weight": { + "fan_in": 768, + "q": -5, + "k": -1, + "rms": 0.034938568812435455, + "values": 2359296, + "pattern_square_sum": 188743752, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "encoder.model.blocks.0.mlp.fc1.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.0.mlp.fc2.weight": { + "fan_in": 3072, + "q": -6, + "k": -2, + "rms": 0.017469284406217728, + "values": 2359296, + "pattern_square_sum": 188743752, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "encoder.model.blocks.0.mlp.fc2.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.1.norm1.weight": { + "rule": "unit_norm_affine", + "rms": 1.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.1.norm1.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.1.attn.qkv.weight": { + "fan_in": 768, + "q": -5, + "k": -1, + "rms": 0.034938565480434995, + "values": 1769472, + "pattern_square_sum": 141557787, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "encoder.model.blocks.1.attn.qkv.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.1.attn.proj.weight": { + "fan_in": 768, + "q": -5, + "k": -1, + "rms": 0.03493853104974496, + "values": 589824, + "pattern_square_sum": 47185836, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "encoder.model.blocks.1.attn.proj.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.1.norm2.weight": { + "rule": "unit_norm_affine", + "rms": 1.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.1.norm2.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.1.mlp.fc1.weight": { + "fan_in": 768, + "q": -5, + "k": -1, + "rms": 0.034938568812435455, + "values": 2359296, + "pattern_square_sum": 188743752, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "encoder.model.blocks.1.mlp.fc1.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.1.mlp.fc2.weight": { + "fan_in": 3072, + "q": -6, + "k": -2, + "rms": 0.017469284406217728, + "values": 2359296, + "pattern_square_sum": 188743752, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "encoder.model.blocks.1.mlp.fc2.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.2.norm1.weight": { + "rule": "unit_norm_affine", + "rms": 1.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.2.norm1.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.2.attn.qkv.weight": { + "fan_in": 768, + "q": -5, + "k": -1, + "rms": 0.034938565480434995, + "values": 1769472, + "pattern_square_sum": 141557787, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "encoder.model.blocks.2.attn.qkv.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.2.attn.proj.weight": { + "fan_in": 768, + "q": -5, + "k": -1, + "rms": 0.03493853104974496, + "values": 589824, + "pattern_square_sum": 47185836, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "encoder.model.blocks.2.attn.proj.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.2.norm2.weight": { + "rule": "unit_norm_affine", + "rms": 1.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.2.norm2.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.2.mlp.fc1.weight": { + "fan_in": 768, + "q": -5, + "k": -1, + "rms": 0.034938568812435455, + "values": 2359296, + "pattern_square_sum": 188743752, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "encoder.model.blocks.2.mlp.fc1.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.2.mlp.fc2.weight": { + "fan_in": 3072, + "q": -6, + "k": -2, + "rms": 0.017469284406217728, + "values": 2359296, + "pattern_square_sum": 188743752, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "encoder.model.blocks.2.mlp.fc2.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.3.norm1.weight": { + "rule": "unit_norm_affine", + "rms": 1.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.3.norm1.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.3.attn.qkv.weight": { + "fan_in": 768, + "q": -5, + "k": -1, + "rms": 0.034938565480434995, + "values": 1769472, + "pattern_square_sum": 141557787, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "encoder.model.blocks.3.attn.qkv.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.3.attn.proj.weight": { + "fan_in": 768, + "q": -5, + "k": -1, + "rms": 0.03493853104974496, + "values": 589824, + "pattern_square_sum": 47185836, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "encoder.model.blocks.3.attn.proj.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.3.norm2.weight": { + "rule": "unit_norm_affine", + "rms": 1.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.3.norm2.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.3.mlp.fc1.weight": { + "fan_in": 768, + "q": -5, + "k": -1, + "rms": 0.034938568812435455, + "values": 2359296, + "pattern_square_sum": 188743752, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "encoder.model.blocks.3.mlp.fc1.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.3.mlp.fc2.weight": { + "fan_in": 3072, + "q": -6, + "k": -2, + "rms": 0.017469284406217728, + "values": 2359296, + "pattern_square_sum": 188743752, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "encoder.model.blocks.3.mlp.fc2.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.4.norm1.weight": { + "rule": "unit_norm_affine", + "rms": 1.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.4.norm1.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.4.attn.qkv.weight": { + "fan_in": 768, + "q": -5, + "k": -1, + "rms": 0.034938565480434995, + "values": 1769472, + "pattern_square_sum": 141557787, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "encoder.model.blocks.4.attn.qkv.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.4.attn.proj.weight": { + "fan_in": 768, + "q": -5, + "k": -1, + "rms": 0.03493853104974496, + "values": 589824, + "pattern_square_sum": 47185836, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "encoder.model.blocks.4.attn.proj.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.4.norm2.weight": { + "rule": "unit_norm_affine", + "rms": 1.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.4.norm2.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.4.mlp.fc1.weight": { + "fan_in": 768, + "q": -5, + "k": -1, + "rms": 0.034938568812435455, + "values": 2359296, + "pattern_square_sum": 188743752, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "encoder.model.blocks.4.mlp.fc1.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.4.mlp.fc2.weight": { + "fan_in": 3072, + "q": -6, + "k": -2, + "rms": 0.017469284406217728, + "values": 2359296, + "pattern_square_sum": 188743752, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "encoder.model.blocks.4.mlp.fc2.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.5.norm1.weight": { + "rule": "unit_norm_affine", + "rms": 1.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.5.norm1.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.5.attn.qkv.weight": { + "fan_in": 768, + "q": -5, + "k": -1, + "rms": 0.034938565480434995, + "values": 1769472, + "pattern_square_sum": 141557787, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "encoder.model.blocks.5.attn.qkv.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.5.attn.proj.weight": { + "fan_in": 768, + "q": -5, + "k": -1, + "rms": 0.03493853104974496, + "values": 589824, + "pattern_square_sum": 47185836, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "encoder.model.blocks.5.attn.proj.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.5.norm2.weight": { + "rule": "unit_norm_affine", + "rms": 1.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.5.norm2.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.5.mlp.fc1.weight": { + "fan_in": 768, + "q": -5, + "k": -1, + "rms": 0.034938568812435455, + "values": 2359296, + "pattern_square_sum": 188743752, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "encoder.model.blocks.5.mlp.fc1.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.5.mlp.fc2.weight": { + "fan_in": 3072, + "q": -6, + "k": -2, + "rms": 0.017469284406217728, + "values": 2359296, + "pattern_square_sum": 188743752, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "encoder.model.blocks.5.mlp.fc2.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.6.norm1.weight": { + "rule": "unit_norm_affine", + "rms": 1.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.6.norm1.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.6.attn.qkv.weight": { + "fan_in": 768, + "q": -5, + "k": -1, + "rms": 0.034938565480434995, + "values": 1769472, + "pattern_square_sum": 141557787, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "encoder.model.blocks.6.attn.qkv.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.6.attn.proj.weight": { + "fan_in": 768, + "q": -5, + "k": -1, + "rms": 0.03493853104974496, + "values": 589824, + "pattern_square_sum": 47185836, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "encoder.model.blocks.6.attn.proj.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.6.norm2.weight": { + "rule": "unit_norm_affine", + "rms": 1.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.6.norm2.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.6.mlp.fc1.weight": { + "fan_in": 768, + "q": -5, + "k": -1, + "rms": 0.034938568812435455, + "values": 2359296, + "pattern_square_sum": 188743752, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "encoder.model.blocks.6.mlp.fc1.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.6.mlp.fc2.weight": { + "fan_in": 3072, + "q": -6, + "k": -2, + "rms": 0.017469284406217728, + "values": 2359296, + "pattern_square_sum": 188743752, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "encoder.model.blocks.6.mlp.fc2.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.7.norm1.weight": { + "rule": "unit_norm_affine", + "rms": 1.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.7.norm1.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.7.attn.qkv.weight": { + "fan_in": 768, + "q": -5, + "k": -1, + "rms": 0.034938565480434995, + "values": 1769472, + "pattern_square_sum": 141557787, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "encoder.model.blocks.7.attn.qkv.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.7.attn.proj.weight": { + "fan_in": 768, + "q": -5, + "k": -1, + "rms": 0.03493853104974496, + "values": 589824, + "pattern_square_sum": 47185836, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "encoder.model.blocks.7.attn.proj.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.7.norm2.weight": { + "rule": "unit_norm_affine", + "rms": 1.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.7.norm2.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.7.mlp.fc1.weight": { + "fan_in": 768, + "q": -5, + "k": -1, + "rms": 0.034938568812435455, + "values": 2359296, + "pattern_square_sum": 188743752, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "encoder.model.blocks.7.mlp.fc1.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.7.mlp.fc2.weight": { + "fan_in": 3072, + "q": -6, + "k": -2, + "rms": 0.017469284406217728, + "values": 2359296, + "pattern_square_sum": 188743752, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "encoder.model.blocks.7.mlp.fc2.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.8.norm1.weight": { + "rule": "unit_norm_affine", + "rms": 1.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.8.norm1.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.8.attn.qkv.weight": { + "fan_in": 768, + "q": -5, + "k": -1, + "rms": 0.034938565480434995, + "values": 1769472, + "pattern_square_sum": 141557787, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "encoder.model.blocks.8.attn.qkv.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.8.attn.proj.weight": { + "fan_in": 768, + "q": -5, + "k": -1, + "rms": 0.03493853104974496, + "values": 589824, + "pattern_square_sum": 47185836, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "encoder.model.blocks.8.attn.proj.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.8.norm2.weight": { + "rule": "unit_norm_affine", + "rms": 1.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.8.norm2.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.8.mlp.fc1.weight": { + "fan_in": 768, + "q": -5, + "k": -1, + "rms": 0.034938568812435455, + "values": 2359296, + "pattern_square_sum": 188743752, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "encoder.model.blocks.8.mlp.fc1.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.8.mlp.fc2.weight": { + "fan_in": 3072, + "q": -6, + "k": -2, + "rms": 0.017469284406217728, + "values": 2359296, + "pattern_square_sum": 188743752, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "encoder.model.blocks.8.mlp.fc2.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.9.norm1.weight": { + "rule": "unit_norm_affine", + "rms": 1.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.9.norm1.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.9.attn.qkv.weight": { + "fan_in": 768, + "q": -5, + "k": -1, + "rms": 0.034938565480434995, + "values": 1769472, + "pattern_square_sum": 141557787, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "encoder.model.blocks.9.attn.qkv.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.9.attn.proj.weight": { + "fan_in": 768, + "q": -5, + "k": -1, + "rms": 0.03493853104974496, + "values": 589824, + "pattern_square_sum": 47185836, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "encoder.model.blocks.9.attn.proj.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.9.norm2.weight": { + "rule": "unit_norm_affine", + "rms": 1.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.9.norm2.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.9.mlp.fc1.weight": { + "fan_in": 768, + "q": -5, + "k": -1, + "rms": 0.034938568812435455, + "values": 2359296, + "pattern_square_sum": 188743752, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "encoder.model.blocks.9.mlp.fc1.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.9.mlp.fc2.weight": { + "fan_in": 3072, + "q": -6, + "k": -2, + "rms": 0.017469284406217728, + "values": 2359296, + "pattern_square_sum": 188743752, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "encoder.model.blocks.9.mlp.fc2.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.10.norm1.weight": { + "rule": "unit_norm_affine", + "rms": 1.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.10.norm1.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.10.attn.qkv.weight": { + "fan_in": 768, + "q": -5, + "k": -1, + "rms": 0.034938565480434995, + "values": 1769472, + "pattern_square_sum": 141557787, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "encoder.model.blocks.10.attn.qkv.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.10.attn.proj.weight": { + "fan_in": 768, + "q": -5, + "k": -1, + "rms": 0.03493853104974496, + "values": 589824, + "pattern_square_sum": 47185836, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "encoder.model.blocks.10.attn.proj.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.10.norm2.weight": { + "rule": "unit_norm_affine", + "rms": 1.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.10.norm2.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.10.mlp.fc1.weight": { + "fan_in": 768, + "q": -5, + "k": -1, + "rms": 0.034938568812435455, + "values": 2359296, + "pattern_square_sum": 188743752, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "encoder.model.blocks.10.mlp.fc1.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.10.mlp.fc2.weight": { + "fan_in": 3072, + "q": -6, + "k": -2, + "rms": 0.017469284406217728, + "values": 2359296, + "pattern_square_sum": 188743752, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "encoder.model.blocks.10.mlp.fc2.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.11.norm1.weight": { + "rule": "unit_norm_affine", + "rms": 1.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.11.norm1.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.11.attn.qkv.weight": { + "fan_in": 768, + "q": -5, + "k": -1, + "rms": 0.034938565480434995, + "values": 1769472, + "pattern_square_sum": 141557787, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "encoder.model.blocks.11.attn.qkv.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.11.attn.proj.weight": { + "fan_in": 768, + "q": -5, + "k": -1, + "rms": 0.03493853104974496, + "values": 589824, + "pattern_square_sum": 47185836, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "encoder.model.blocks.11.attn.proj.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.11.norm2.weight": { + "rule": "unit_norm_affine", + "rms": 1.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.11.norm2.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.11.mlp.fc1.weight": { + "fan_in": 768, + "q": -5, + "k": -1, + "rms": 0.034938568812435455, + "values": 2359296, + "pattern_square_sum": 188743752, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "encoder.model.blocks.11.mlp.fc1.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.blocks.11.mlp.fc2.weight": { + "fan_in": 3072, + "q": -6, + "k": -2, + "rms": 0.017469284406217728, + "values": 2359296, + "pattern_square_sum": 188743752, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "encoder.model.blocks.11.mlp.fc2.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.norm.weight": { + "rule": "unit_norm_affine", + "rms": 1.0, + "exact_values_asserted": true + }, + "encoder.model.norm.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "encoder.model.head.weight": { + "fan_in": 768, + "q": -5, + "k": -1, + "rms": 0.0349385595894574, + "values": 768000, + "pattern_square_sum": 61439991, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "encoder.model.head.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "decoder.projection_blocks.0.project.0.weight": { + "fan_in": 1536, + "q": -5, + "k": -1, + "rms": 0.03493855289287483, + "values": 1179648, + "pattern_square_sum": 94371790, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "decoder.projection_blocks.0.project.0.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "decoder.projection_blocks.1.project.0.weight": { + "fan_in": 1536, + "q": -5, + "k": -1, + "rms": 0.03493855289287483, + "values": 1179648, + "pattern_square_sum": 94371790, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "decoder.projection_blocks.1.project.0.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "decoder.projection_blocks.2.project.0.weight": { + "fan_in": 1536, + "q": -5, + "k": -1, + "rms": 0.03493855289287483, + "values": 1179648, + "pattern_square_sum": 94371790, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "decoder.projection_blocks.2.project.0.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "decoder.projection_blocks.3.project.0.weight": { + "fan_in": 1536, + "q": -5, + "k": -1, + "rms": 0.03493855289287483, + "values": 1179648, + "pattern_square_sum": 94371790, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "decoder.projection_blocks.3.project.0.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "decoder.reassemble_blocks.0.project_to_out_channel.weight": { + "fan_in": 768, + "q": -5, + "k": -1, + "rms": 0.03493855215242997, + "values": 196608, + "pattern_square_sum": 15728631, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "decoder.reassemble_blocks.0.project_to_out_channel.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "decoder.reassemble_blocks.0.upsample.weight": { + "fan_in": 256, + "q": -4, + "k": 0, + "rms": 0.06987715095287084, + "values": 1048576, + "pattern_square_sum": 83886144, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "decoder.reassemble_blocks.0.upsample.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "decoder.reassemble_blocks.0.project_to_feature_dim.weight": { + "fan_in": 2304, + "q": -6, + "k": -2, + "rms": 0.01746926552487248, + "values": 589824, + "pattern_square_sum": 47185836, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "decoder.reassemble_blocks.1.project_to_out_channel.weight": { + "fan_in": 768, + "q": -5, + "k": -1, + "rms": 0.03493858547243299, + "values": 393216, + "pattern_square_sum": 31457322, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "decoder.reassemble_blocks.1.project_to_out_channel.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "decoder.reassemble_blocks.1.upsample.weight": { + "fan_in": 512, + "q": -4, + "k": 0, + "rms": 0.06987715095287084, + "values": 1048576, + "pattern_square_sum": 83886144, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "decoder.reassemble_blocks.1.upsample.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "decoder.reassemble_blocks.1.project_to_feature_dim.weight": { + "fan_in": 4608, + "q": -6, + "k": -2, + "rms": 0.017469276446437414, + "values": 1179648, + "pattern_square_sum": 94371790, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "decoder.reassemble_blocks.2.project_to_out_channel.weight": { + "fan_in": 768, + "q": -5, + "k": -1, + "rms": 0.03493856103776722, + "values": 786432, + "pattern_square_sum": 62914556, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "decoder.reassemble_blocks.2.project_to_out_channel.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "decoder.reassemble_blocks.2.project_to_feature_dim.weight": { + "fan_in": 9216, + "q": -7, + "k": -3, + "rms": 0.008734642203108864, + "values": 2359296, + "pattern_square_sum": 188743752, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "decoder.reassemble_blocks.3.project_to_out_channel.weight": { + "fan_in": 768, + "q": -5, + "k": -1, + "rms": 0.03493856103776722, + "values": 786432, + "pattern_square_sum": 62914556, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "decoder.reassemble_blocks.3.project_to_out_channel.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "decoder.reassemble_blocks.3.upsample.weight": { + "fan_in": 9216, + "q": -7, + "k": -3, + "rms": 0.0087346402825807, + "values": 9437184, + "pattern_square_sum": 754974676, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "decoder.reassemble_blocks.3.upsample.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "decoder.reassemble_blocks.3.project_to_feature_dim.weight": { + "fan_in": 9216, + "q": -7, + "k": -3, + "rms": 0.008734642203108864, + "values": 2359296, + "pattern_square_sum": 188743752, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "decoder.fusion_blocks.0.residual_conv_block1.conv_1.weight": { + "fan_in": 2304, + "q": -6, + "k": -2, + "rms": 0.01746926552487248, + "values": 589824, + "pattern_square_sum": 47185836, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "decoder.fusion_blocks.0.residual_conv_block1.batch_norm_1.weight": { + "rule": "unit_norm_affine", + "rms": 1.0, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.0.residual_conv_block1.batch_norm_1.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.0.residual_conv_block1.conv_2.weight": { + "fan_in": 2304, + "q": -6, + "k": -2, + "rms": 0.01746926552487248, + "values": 589824, + "pattern_square_sum": 47185836, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "decoder.fusion_blocks.0.residual_conv_block1.batch_norm_2.weight": { + "rule": "unit_norm_affine", + "rms": 1.0, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.0.residual_conv_block1.batch_norm_2.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.0.residual_conv_block2.conv_1.weight": { + "fan_in": 2304, + "q": -6, + "k": -2, + "rms": 0.01746926552487248, + "values": 589824, + "pattern_square_sum": 47185836, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "decoder.fusion_blocks.0.residual_conv_block2.batch_norm_1.weight": { + "rule": "unit_norm_affine", + "rms": 1.0, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.0.residual_conv_block2.batch_norm_1.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.0.residual_conv_block2.conv_2.weight": { + "fan_in": 2304, + "q": -6, + "k": -2, + "rms": 0.01746926552487248, + "values": 589824, + "pattern_square_sum": 47185836, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "decoder.fusion_blocks.0.residual_conv_block2.batch_norm_2.weight": { + "rule": "unit_norm_affine", + "rms": 1.0, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.0.residual_conv_block2.batch_norm_2.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.0.project.weight": { + "fan_in": 256, + "q": -4, + "k": 0, + "rms": 0.06987718427285956, + "values": 65536, + "pattern_square_sum": 5242889, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "decoder.fusion_blocks.0.project.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.1.residual_conv_block1.conv_1.weight": { + "fan_in": 2304, + "q": -6, + "k": -2, + "rms": 0.01746926552487248, + "values": 589824, + "pattern_square_sum": 47185836, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "decoder.fusion_blocks.1.residual_conv_block1.batch_norm_1.weight": { + "rule": "unit_norm_affine", + "rms": 1.0, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.1.residual_conv_block1.batch_norm_1.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.1.residual_conv_block1.conv_2.weight": { + "fan_in": 2304, + "q": -6, + "k": -2, + "rms": 0.01746926552487248, + "values": 589824, + "pattern_square_sum": 47185836, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "decoder.fusion_blocks.1.residual_conv_block1.batch_norm_2.weight": { + "rule": "unit_norm_affine", + "rms": 1.0, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.1.residual_conv_block1.batch_norm_2.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.1.residual_conv_block2.conv_1.weight": { + "fan_in": 2304, + "q": -6, + "k": -2, + "rms": 0.01746926552487248, + "values": 589824, + "pattern_square_sum": 47185836, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "decoder.fusion_blocks.1.residual_conv_block2.batch_norm_1.weight": { + "rule": "unit_norm_affine", + "rms": 1.0, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.1.residual_conv_block2.batch_norm_1.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.1.residual_conv_block2.conv_2.weight": { + "fan_in": 2304, + "q": -6, + "k": -2, + "rms": 0.01746926552487248, + "values": 589824, + "pattern_square_sum": 47185836, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "decoder.fusion_blocks.1.residual_conv_block2.batch_norm_2.weight": { + "rule": "unit_norm_affine", + "rms": 1.0, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.1.residual_conv_block2.batch_norm_2.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.1.project.weight": { + "fan_in": 256, + "q": -4, + "k": 0, + "rms": 0.06987718427285956, + "values": 65536, + "pattern_square_sum": 5242889, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "decoder.fusion_blocks.1.project.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.2.residual_conv_block1.conv_1.weight": { + "fan_in": 2304, + "q": -6, + "k": -2, + "rms": 0.01746926552487248, + "values": 589824, + "pattern_square_sum": 47185836, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "decoder.fusion_blocks.2.residual_conv_block1.batch_norm_1.weight": { + "rule": "unit_norm_affine", + "rms": 1.0, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.2.residual_conv_block1.batch_norm_1.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.2.residual_conv_block1.conv_2.weight": { + "fan_in": 2304, + "q": -6, + "k": -2, + "rms": 0.01746926552487248, + "values": 589824, + "pattern_square_sum": 47185836, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "decoder.fusion_blocks.2.residual_conv_block1.batch_norm_2.weight": { + "rule": "unit_norm_affine", + "rms": 1.0, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.2.residual_conv_block1.batch_norm_2.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.2.residual_conv_block2.conv_1.weight": { + "fan_in": 2304, + "q": -6, + "k": -2, + "rms": 0.01746926552487248, + "values": 589824, + "pattern_square_sum": 47185836, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "decoder.fusion_blocks.2.residual_conv_block2.batch_norm_1.weight": { + "rule": "unit_norm_affine", + "rms": 1.0, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.2.residual_conv_block2.batch_norm_1.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.2.residual_conv_block2.conv_2.weight": { + "fan_in": 2304, + "q": -6, + "k": -2, + "rms": 0.01746926552487248, + "values": 589824, + "pattern_square_sum": 47185836, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "decoder.fusion_blocks.2.residual_conv_block2.batch_norm_2.weight": { + "rule": "unit_norm_affine", + "rms": 1.0, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.2.residual_conv_block2.batch_norm_2.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.2.project.weight": { + "fan_in": 256, + "q": -4, + "k": 0, + "rms": 0.06987718427285956, + "values": 65536, + "pattern_square_sum": 5242889, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "decoder.fusion_blocks.2.project.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.3.residual_conv_block1.conv_1.weight": { + "fan_in": 2304, + "q": -6, + "k": -2, + "rms": 0.01746926552487248, + "values": 589824, + "pattern_square_sum": 47185836, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "decoder.fusion_blocks.3.residual_conv_block1.batch_norm_1.weight": { + "rule": "unit_norm_affine", + "rms": 1.0, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.3.residual_conv_block1.batch_norm_1.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.3.residual_conv_block1.conv_2.weight": { + "fan_in": 2304, + "q": -6, + "k": -2, + "rms": 0.01746926552487248, + "values": 589824, + "pattern_square_sum": 47185836, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "decoder.fusion_blocks.3.residual_conv_block1.batch_norm_2.weight": { + "rule": "unit_norm_affine", + "rms": 1.0, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.3.residual_conv_block1.batch_norm_2.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.3.residual_conv_block2.conv_1.weight": { + "fan_in": 2304, + "q": -6, + "k": -2, + "rms": 0.01746926552487248, + "values": 589824, + "pattern_square_sum": 47185836, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "decoder.fusion_blocks.3.residual_conv_block2.batch_norm_1.weight": { + "rule": "unit_norm_affine", + "rms": 1.0, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.3.residual_conv_block2.batch_norm_1.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.3.residual_conv_block2.conv_2.weight": { + "fan_in": 2304, + "q": -6, + "k": -2, + "rms": 0.01746926552487248, + "values": 589824, + "pattern_square_sum": 47185836, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "decoder.fusion_blocks.3.residual_conv_block2.batch_norm_2.weight": { + "rule": "unit_norm_affine", + "rms": 1.0, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.3.residual_conv_block2.batch_norm_2.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.3.project.weight": { + "fan_in": 256, + "q": -4, + "k": 0, + "rms": 0.06987718427285956, + "values": 65536, + "pattern_square_sum": 5242889, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "decoder.fusion_blocks.3.project.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "segmentation_head.head.0.weight": { + "fan_in": 2304, + "q": -6, + "k": -2, + "rms": 0.01746926552487248, + "values": 589824, + "pattern_square_sum": 47185836, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "segmentation_head.head.1.weight": { + "rule": "unit_norm_affine", + "rms": 1.0, + "exact_values_asserted": true + }, + "segmentation_head.head.1.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + }, + "segmentation_head.head.4.weight": { + "fan_in": 256, + "q": -4, + "k": 0, + "rms": 0.06981568184263721, + "values": 512, + "pattern_square_sum": 40888, + "rule": "fan_in_pattern", + "exact_values_asserted": true + }, + "segmentation_head.head.4.bias": { + "rule": "zero_bias", + "rms": 0.0, + "exact_values_asserted": true + } + }, + "parameters_sha256": "9fbe4950eb7bfa878559c2a2269daeb9e0f9601e4e2043972b56e7acac88bdf9", + "float32_input_sha256": "316691251cb43ab2f326472fe4bc699039e8c644eee0069a18c82c10264ecba1", + "calibration": { + "batches": 4, + "batch_size": 2, + "seed": 14128, + "momentum": null, + "learned_parameters_unchanged": true + }, + "threads": 2, + "mkldnn": true, + "outputs": { + "encoder0_spatial": { + "shape": [ + 14, + 14, + 768 + ], + "mirror_vs_torch32": { + "max_abs": 0.016948699951171875, + "argmax_flips": 1 + }, + "mirror_vs_torch64": { + "max_abs": 0.0036736604049352195, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 0.013275039546236655, + "argmax_flips": 1 + }, + "max_activation": { + "mirror": 142.27655029296875, + "torch32": 142.27642822265625, + "torch64": 142.27654480354073 + }, + "float32_step_at_torch32_peak": 1.52587890625e-05 + }, + "encoder0_class": { + "shape": [ + 1, + 1, + 768 + ], + "mirror_vs_torch32": { + "max_abs": 0.0005908012390136719, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 4.768080043504597e-05, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 0.0005477917070138005, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 102.86519622802734, + "torch32": 102.86511993408203, + "torch64": 102.86520905220297 + }, + "float32_step_at_torch32_peak": 7.62939453125e-06 + }, + "encoder1_spatial": { + "shape": [ + 14, + 14, + 768 + ], + "mirror_vs_torch32": { + "max_abs": 0.061264991760253906, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 0.013166594053592107, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 0.0480983977066618, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 284.05755615234375, + "torch32": 284.05596923828125, + "torch64": 284.0578579263125 + }, + "float32_step_at_torch32_peak": 3.0517578125e-05 + }, + "encoder1_class": { + "shape": [ + 1, + 1, + 768 + ], + "mirror_vs_torch32": { + "max_abs": 0.000835418701171875, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 0.00021861298748149238, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 0.0007415440060327683, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 171.10267639160156, + "torch32": 171.1021728515625, + "torch64": 171.10257723200831 + }, + "float32_step_at_torch32_peak": 1.52587890625e-05 + }, + "encoder2_spatial": { + "shape": [ + 14, + 14, + 768 + ], + "mirror_vs_torch32": { + "max_abs": 0.07556915283203125, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 0.01632054746015399, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 0.05924860537187726, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 455.6689453125, + "torch32": 455.6725769042969, + "torch64": 455.6685560690337 + }, + "float32_step_at_torch32_peak": 3.0517578125e-05 + }, + "encoder2_class": { + "shape": [ + 1, + 1, + 768 + ], + "mirror_vs_torch32": { + "max_abs": 0.00205230712890625, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 0.00034227075730086653, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 0.0018600345852064493, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 259.04083251953125, + "torch32": 259.0395202636719, + "torch64": 259.04085223666704 + }, + "float32_step_at_torch32_peak": 3.0517578125e-05 + }, + "encoder3_spatial": { + "shape": [ + 14, + 14, + 768 + ], + "mirror_vs_torch32": { + "max_abs": 0.1164093017578125, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 0.025606805508203934, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 0.09080249624960857, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 649.109130859375, + "torch32": 649.1076049804688, + "torch64": 649.1091704761734 + }, + "float32_step_at_torch32_peak": 6.103515625e-05 + }, + "encoder3_class": { + "shape": [ + 1, + 1, + 768 + ], + "mirror_vs_torch32": { + "max_abs": 0.002685546875, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 0.0007027688264287235, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 0.0026352070028110575, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 360.9045715332031, + "torch32": 360.90191650390625, + "torch64": 360.90455171090906 + }, + "float32_step_at_torch32_peak": 3.0517578125e-05 + }, + "readout0": { + "shape": [ + 14, + 14, + 768 + ], + "mirror_vs_torch32": { + "max_abs": 0.039764404296875, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 0.00859160181235552, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 0.03117280248451948, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 688.2440185546875, + "torch32": 688.2446899414062, + "torch64": 688.2440241821172 + }, + "float32_step_at_torch32_peak": 6.103515625e-05 + }, + "reassemble0": { + "shape": [ + 56, + 56, + 256 + ], + "mirror_vs_torch32": { + "max_abs": 0.549560546875, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 0.11878478928520053, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 0.43077575758979947, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 6511.40283203125, + "torch32": 6511.40380859375, + "torch64": 6511.403893464007 + }, + "float32_step_at_torch32_peak": 0.00048828125 + }, + "readout1": { + "shape": [ + 14, + 14, + 768 + ], + "mirror_vs_torch32": { + "max_abs": 0.174407958984375, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 0.038143973983551405, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 0.1362639850008236, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 1665.91943359375, + "torch32": 1665.921142578125, + "torch64": 1665.9204481858635 + }, + "float32_step_at_torch32_peak": 0.0001220703125 + }, + "reassemble1": { + "shape": [ + 28, + 28, + 256 + ], + "mirror_vs_torch32": { + "max_abs": 3.4482421875, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 0.7748279187211438, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 2.679570284592046, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 35633.5078125, + "torch32": 35633.53515625, + "torch64": 35633.52195913889 + }, + "float32_step_at_torch32_peak": 0.00390625 + }, + "readout2": { + "shape": [ + 14, + 14, + 768 + ], + "mirror_vs_torch32": { + "max_abs": 0.36350250244140625, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 0.08013565270043443, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 0.2833668497409718, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 2743.946044921875, + "torch32": 2743.945556640625, + "torch64": 2743.9463254577754 + }, + "float32_step_at_torch32_peak": 0.000244140625 + }, + "reassemble2": { + "shape": [ + 14, + 14, + 256 + ], + "mirror_vs_torch32": { + "max_abs": 0.91668701171875, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 0.21179439734714833, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 0.7266033688058542, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 10456.205078125, + "torch32": 10456.40625, + "torch64": 10456.212102300391 + }, + "float32_step_at_torch32_peak": 0.0009765625 + }, + "readout3": { + "shape": [ + 14, + 14, + 768 + ], + "mirror_vs_torch32": { + "max_abs": 0.5751953125, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 0.1298859255084608, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 0.4453093869915392, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 3663.583251953125, + "torch32": 3663.581787109375, + "torch64": 3663.582691905304 + }, + "float32_step_at_torch32_peak": 0.000244140625 + }, + "reassemble3": { + "shape": [ + 7, + 7, + 256 + ], + "mirror_vs_torch32": { + "max_abs": 2.995361328125, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 0.8078888093932619, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 2.721166615273887, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 68778.1875, + "torch32": 68777.53125, + "torch64": 68778.05032922866 + }, + "float32_step_at_torch32_peak": 0.0078125 + }, + "fusion0": { + "shape": [ + 14, + 14, + 256 + ], + "mirror_vs_torch32": { + "max_abs": 3.984375, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 0.7970217623023927, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 3.7081695077577024, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 85909.625, + "torch32": 85908.0625, + "torch64": 85909.42316322096 + }, + "float32_step_at_torch32_peak": 0.0078125 + }, + "fusion1": { + "shape": [ + 28, + 28, + 256 + ], + "mirror_vs_torch32": { + "max_abs": 20.78125, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 3.679201983526582, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 17.81373505263764, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 454875.03125, + "torch32": 454870.09375, + "torch64": 454874.6052966443 + }, + "float32_step_at_torch32_peak": 0.03125 + }, + "fusion2": { + "shape": [ + 56, + 56, + 256 + ], + "mirror_vs_torch32": { + "max_abs": 40.625, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 5.586746213492006, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 35.038253786507994, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 669075.75, + "torch32": 669071.4375, + "torch64": 669075.4373042173 + }, + "float32_step_at_torch32_peak": 0.0625 + }, + "fusion3": { + "shape": [ + 112, + 112, + 256 + ], + "mirror_vs_torch32": { + "max_abs": 147.609375, + "argmax_flips": 1 + }, + "mirror_vs_torch64": { + "max_abs": 21.863697417837102, + "argmax_flips": 1 + }, + "torch32_vs_torch64": { + "max_abs": 129.45638490605052, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 2992254.75, + "torch32": 2992211.5, + "torch64": 2992251.440239367 + }, + "float32_step_at_torch32_peak": 0.25 + }, + "head": { + "shape": [ + 112, + 112, + 2 + ], + "mirror_vs_torch32": { + "max_abs": 0.0005536079406738281, + "argmax_flips": 1 + }, + "mirror_vs_torch64": { + "max_abs": 0.00010378112662046135, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 0.0005442405058300182, + "argmax_flips": 1 + }, + "max_activation": { + "mirror": 18.07628059387207, + "torch32": 18.07619857788086, + "torch64": 18.076259201935322 + }, + "float32_step_at_torch32_peak": 1.9073486328125e-06 + }, + "logits": { + "shape": [ + 224, + 224, + 2 + ], + "mirror_vs_torch32": { + "max_abs": 0.0005426406860351562, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 0.00010239660514788085, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 0.0005448948705755186, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 18.0706729888916, + "torch32": 18.07059097290039, + "torch64": 18.0706515840453 + }, + "float32_step_at_torch32_peak": 1.9073486328125e-06 + } + } + } +} diff --git a/docs/evidence/dpt-hash-offline.json b/docs/evidence/dpt-hash-offline.json new file mode 100644 index 0000000..1c85683 --- /dev/null +++ b/docs/evidence/dpt-hash-offline.json @@ -0,0 +1,7618 @@ +{ + "kind": "dpt_hash_initialized_offline_comparison", + "schema_version": 1, + "status": "passed", + "revision": "61970829e898bb2b6299d7614b1adf96c3f5ddf1", + "dirty": false, + "cloud_calls": 0, + "command": "PYTHONPATH=. python tools/vit_b16_dpt224_numerics.py --output docs/evidence/dpt-hash-offline.json", + "input_seed": 14127, + "weights": "SplitMix64(crc32(parameter name),flat index); uniform dyadics at native initializer std; native constants; fixed four-batch BN calibration; model.double()", + "input": "same float32 dyadic values converted exactly to double", + "fused_attention": false, + "versions": { + "python": "3.12.3", + "torch": "2.14.0+cpu", + "numpy": "2.5.3", + "timm": "1.0.30", + "segmentation-models-pytorch": "0.5.0", + "earthengine-api": "1.7.45" + }, + "claims": { + "absolute_tolerance": 0.0001, + "full": { + "final_float32_target_met": true, + "intermediate_float64_ordering_met": true + }, + "reduced": { + "final_float32_target_met": true, + "intermediate_float64_ordering_met": true + } + }, + "full": { + "config": { + "encoder_width": 768, + "heads": 12, + "depth": 12, + "indices": [ + 2, + 5, + 8, + 11 + ], + "intermediate": [ + 256, + 512, + 1024, + 1024 + ], + "fusion": 256 + }, + "generator": { + "algorithm": "SplitMix64", + "key": "crc32(state_dict_name UTF-8), zero-extended to uint64", + "counter": "flat_index+1", + "top_bits": 24, + "dyadic": "(u+0.5)/2^23-1", + "scale": "sqrt(3)*std_native in float64; one float32 cast", + "known_answers_asserted": true + }, + "initialization": { + "encoder.model.cls_token": { + "name": "encoder.model.cls_token", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 1e-06, + "constant": null, + "native_initializer": "normal_(std=1e-6)", + "native_source": "timm 1.0.30 VisionTransformer.init_weights", + "key_crc32": 1626377865, + "shape": [ + 1, + 1, + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.pos_embed": { + "name": "encoder.model.pos_embed", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 VisionTransformer.init_weights", + "key_crc32": 1673483254, + "shape": [ + 1, + 197, + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.patch_embed.proj.weight": { + "name": "encoder.model.patch_embed.proj.weight", + "fan_in": 1536, + "initializer_fan_in": 1536, + "fan_out": 196608, + "std": 0.01473139127471974, + "constant": null, + "native_initializer": "kaiming_uniform_(a=sqrt(5))", + "native_source": "torch 2.14 _ConvNd.reset_parameters; no timm/SMP override", + "key_crc32": 1351028131, + "shape": [ + 768, + 6, + 16, + 16 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.patch_embed.proj.bias": { + "name": "encoder.model.patch_embed.proj.bias", + "fan_in": 1536, + "initializer_fan_in": 1536, + "fan_out": 196608, + "std": 0.01473139127471974, + "constant": null, + "native_initializer": "uniform_(-1/sqrt(fan_in),1/sqrt(fan_in))", + "native_source": "torch 2.14 _ConvNd.reset_parameters; no timm/SMP override", + "key_crc32": 2908137453, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.0.norm1.weight": { + "name": "encoder.model.blocks.0.norm1.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 2801010758, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.0.norm1.bias": { + "name": "encoder.model.blocks.0.norm1.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 875231260, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.0.attn.qkv.weight": { + "name": "encoder.model.blocks.0.attn.qkv.weight", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 2304, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 4055546927, + "shape": [ + 2304, + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.0.attn.qkv.bias": { + "name": "encoder.model.blocks.0.attn.qkv.bias", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 2304, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 3965067308, + "shape": [ + 2304 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.0.attn.proj.weight": { + "name": "encoder.model.blocks.0.attn.proj.weight", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 768, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 2845581108, + "shape": [ + 768, + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.0.attn.proj.bias": { + "name": "encoder.model.blocks.0.attn.proj.bias", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 768, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 132073934, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.0.norm2.weight": { + "name": "encoder.model.blocks.0.norm2.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 679153573, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.0.norm2.bias": { + "name": "encoder.model.blocks.0.norm2.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 2998831794, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.0.mlp.fc1.weight": { + "name": "encoder.model.blocks.0.mlp.fc1.weight", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 3072, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 1232924955, + "shape": [ + 3072, + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.0.mlp.fc1.bias": { + "name": "encoder.model.blocks.0.mlp.fc1.bias", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 3072, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 3041311206, + "shape": [ + 3072 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.0.mlp.fc2.weight": { + "name": "encoder.model.blocks.0.mlp.fc2.weight", + "fan_in": 3072, + "initializer_fan_in": 3072, + "fan_out": 768, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 3354654456, + "shape": [ + 768, + 3072 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.0.mlp.fc2.bias": { + "name": "encoder.model.blocks.0.mlp.fc2.bias", + "fan_in": 3072, + "initializer_fan_in": 3072, + "fan_out": 768, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 869452616, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.1.norm1.weight": { + "name": "encoder.model.blocks.1.norm1.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 1006364976, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.1.norm1.bias": { + "name": "encoder.model.blocks.1.norm1.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 2945430643, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.1.attn.qkv.weight": { + "name": "encoder.model.blocks.1.attn.qkv.weight", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 2304, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 1981577068, + "shape": [ + 2304, + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.1.attn.qkv.bias": { + "name": "encoder.model.blocks.1.attn.qkv.bias", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 2304, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 1437465540, + "shape": [ + 2304 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.1.attn.proj.weight": { + "name": "encoder.model.blocks.1.attn.proj.weight", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 768, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 1187949013, + "shape": [ + 768, + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.1.attn.proj.bias": { + "name": "encoder.model.blocks.1.attn.proj.bias", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 768, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 2847397983, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.1.norm2.weight": { + "name": "encoder.model.blocks.1.norm2.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 3044339411, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.1.norm2.bias": { + "name": "encoder.model.blocks.1.norm2.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 689686237, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.1.mlp.fc1.weight": { + "name": "encoder.model.blocks.1.mlp.fc1.weight", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 3072, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 3876872330, + "shape": [ + 3072, + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.1.mlp.fc1.bias": { + "name": "encoder.model.blocks.1.mlp.fc1.bias", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 3072, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 675895440, + "shape": [ + 3072 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.1.mlp.fc2.weight": { + "name": "encoder.model.blocks.1.mlp.fc2.weight", + "fan_in": 3072, + "initializer_fan_in": 3072, + "fan_out": 768, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 1771792233, + "shape": [ + 768, + 3072 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.1.mlp.fc2.bias": { + "name": "encoder.model.blocks.1.mlp.fc2.bias", + "fan_in": 3072, + "initializer_fan_in": 3072, + "fan_out": 768, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 2933729854, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.2.norm1.weight": { + "name": "encoder.model.blocks.2.norm1.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 1201327339, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.2.norm1.bias": { + "name": "encoder.model.blocks.2.norm1.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 3625019011, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.2.attn.qkv.weight": { + "name": "encoder.model.blocks.2.attn.qkv.weight", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 2304, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 629550312, + "shape": [ + 2304, + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.2.attn.qkv.bias": { + "name": "encoder.model.blocks.2.attn.qkv.bias", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 2304, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 1154519485, + "shape": [ + 2304 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.2.attn.proj.weight": { + "name": "encoder.model.blocks.2.attn.proj.weight", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 768, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 2890429623, + "shape": [ + 768, + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.2.attn.proj.bias": { + "name": "encoder.model.blocks.2.attn.proj.bias", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 768, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 2155834541, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.2.norm2.weight": { + "name": "encoder.model.blocks.2.norm2.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 3373648648, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.2.norm2.bias": { + "name": "encoder.model.blocks.2.norm2.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 1585779757, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.2.mlp.fc1.weight": { + "name": "encoder.model.blocks.2.mlp.fc1.weight", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 3072, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 3470578808, + "shape": [ + 3072, + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.2.mlp.fc1.bias": { + "name": "encoder.model.blocks.2.mlp.fc1.bias", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 3072, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 1411939659, + "shape": [ + 3072 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.2.mlp.fc2.weight": { + "name": "encoder.model.blocks.2.mlp.fc2.weight", + "fan_in": 3072, + "initializer_fan_in": 3072, + "fan_out": 768, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 1079235483, + "shape": [ + 768, + 3072 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.2.mlp.fc2.bias": { + "name": "encoder.model.blocks.2.mlp.fc2.bias", + "fan_in": 3072, + "initializer_fan_in": 3072, + "fan_out": 768, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 3535540197, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.3.norm1.weight": { + "name": "encoder.model.blocks.3.norm1.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 3667209629, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.3.norm1.bias": { + "name": "encoder.model.blocks.3.norm1.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 1135880940, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.3.attn.qkv.weight": { + "name": "encoder.model.blocks.3.attn.qkv.weight", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 2304, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 2720065451, + "shape": [ + 2304, + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.3.attn.qkv.bias": { + "name": "encoder.model.blocks.3.attn.qkv.bias", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 2304, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 4247472725, + "shape": [ + 2304 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.3.attn.proj.weight": { + "name": "encoder.model.blocks.3.attn.proj.weight", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 768, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 1125827158, + "shape": [ + 768, + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.3.attn.proj.bias": { + "name": "encoder.model.blocks.3.attn.proj.bias", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 768, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 773324092, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.3.norm2.weight": { + "name": "encoder.model.blocks.3.norm2.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 1411000958, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.3.norm2.bias": { + "name": "encoder.model.blocks.3.norm2.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 3307231298, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.3.mlp.fc1.weight": { + "name": "encoder.model.blocks.3.mlp.fc1.weight", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 3072, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 1622427113, + "shape": [ + 3072, + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.3.mlp.fc1.bias": { + "name": "encoder.model.blocks.3.mlp.fc1.bias", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 3072, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 3374816317, + "shape": [ + 3072 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.3.mlp.fc2.weight": { + "name": "encoder.model.blocks.3.mlp.fc2.weight", + "fan_in": 3072, + "initializer_fan_in": 3072, + "fan_out": 768, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 3996860938, + "shape": [ + 768, + 3072 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.3.mlp.fc2.bias": { + "name": "encoder.model.blocks.3.mlp.fc2.bias", + "fan_in": 3072, + "initializer_fan_in": 3072, + "fan_out": 768, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 1337192083, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.4.norm1.weight": { + "name": "encoder.model.blocks.4.norm1.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 3210250077, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.4.norm1.bias": { + "name": "encoder.model.blocks.4.norm1.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 925680483, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.4.attn.qkv.weight": { + "name": "encoder.model.blocks.4.attn.qkv.weight", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 2304, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 2192743392, + "shape": [ + 2304, + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.4.attn.qkv.bias": { + "name": "encoder.model.blocks.4.attn.qkv.bias", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 2304, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 1714046287, + "shape": [ + 2304 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.4.attn.proj.weight": { + "name": "encoder.model.blocks.4.attn.proj.weight", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 768, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 2721368114, + "shape": [ + 768, + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.4.attn.proj.bias": { + "name": "encoder.model.blocks.4.attn.proj.bias", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 768, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 3555591497, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.4.norm2.weight": { + "name": "encoder.model.blocks.4.norm2.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 836206782, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.4.norm2.bias": { + "name": "encoder.model.blocks.4.norm2.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 2981671373, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.4.mlp.fc1.weight": { + "name": "encoder.model.blocks.4.mlp.fc1.weight", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 3072, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 2639117724, + "shape": [ + 3072, + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.4.mlp.fc1.bias": { + "name": "encoder.model.blocks.4.mlp.fc1.bias", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 3072, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 2901030653, + "shape": [ + 3072 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.4.mlp.fc2.weight": { + "name": "encoder.model.blocks.4.mlp.fc2.weight", + "fan_in": 3072, + "initializer_fan_in": 3072, + "fan_out": 768, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 331528831, + "shape": [ + 768, + 3072 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.4.mlp.fc2.bias": { + "name": "encoder.model.blocks.4.mlp.fc2.bias", + "fan_in": 3072, + "initializer_fan_in": 3072, + "fan_out": 768, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 712918099, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.5.norm1.weight": { + "name": "encoder.model.blocks.5.norm1.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 576153131, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.5.norm1.bias": { + "name": "encoder.model.blocks.5.norm1.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 2894696204, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.5.attn.qkv.weight": { + "name": "encoder.model.blocks.5.attn.qkv.weight", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 2304, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 85217443, + "shape": [ + 2304, + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.5.attn.qkv.bias": { + "name": "encoder.model.blocks.5.attn.qkv.bias", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 2304, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 3755056807, + "shape": [ + 2304 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.5.attn.proj.weight": { + "name": "encoder.model.blocks.5.attn.proj.weight", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 768, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 1298562771, + "shape": [ + 768, + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.5.attn.proj.bias": { + "name": "encoder.model.blocks.5.attn.proj.bias", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 768, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 2105971928, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.5.norm2.weight": { + "name": "encoder.model.blocks.5.norm2.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 2899861960, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.5.norm2.bias": { + "name": "encoder.model.blocks.5.norm2.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 706608546, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.5.mlp.fc1.weight": { + "name": "encoder.model.blocks.5.mlp.fc1.weight", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 3072, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 858074125, + "shape": [ + 3072, + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.5.mlp.fc1.bias": { + "name": "encoder.model.blocks.5.mlp.fc1.bias", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 3072, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 837146507, + "shape": [ + 3072 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.5.mlp.fc2.weight": { + "name": "encoder.model.blocks.5.mlp.fc2.weight", + "fan_in": 3072, + "initializer_fan_in": 3072, + "fan_out": 768, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 3182046190, + "shape": [ + 768, + 3072 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.5.mlp.fc2.bias": { + "name": "encoder.model.blocks.5.mlp.fc2.bias", + "fan_in": 3072, + "initializer_fan_in": 3072, + "fan_out": 768, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 3077678373, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.6.norm1.weight": { + "name": "encoder.model.blocks.6.norm1.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 1580614640, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.6.norm1.bias": { + "name": "encoder.model.blocks.6.norm1.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 3675741692, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.6.attn.qkv.weight": { + "name": "encoder.model.blocks.6.attn.qkv.weight", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 2304, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 1452149543, + "shape": [ + 2304, + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.6.attn.qkv.bias": { + "name": "encoder.model.blocks.6.attn.qkv.bias", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 2304, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 3467441374, + "shape": [ + 2304 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.6.attn.proj.weight": { + "name": "encoder.model.blocks.6.attn.proj.weight", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 768, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 2816517041, + "shape": [ + 768, + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.6.attn.proj.bias": { + "name": "encoder.model.blocks.6.attn.proj.bias", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 768, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 1414406186, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.6.norm2.weight": { + "name": "encoder.model.blocks.6.norm2.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 3501802515, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.6.norm2.bias": { + "name": "encoder.model.blocks.6.norm2.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 1568878418, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.6.mlp.fc1.weight": { + "name": "encoder.model.blocks.6.mlp.fc1.weight", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 3072, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 451778815, + "shape": [ + 3072, + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.6.mlp.fc1.bias": { + "name": "encoder.model.blocks.6.mlp.fc1.bias", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 3072, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 1300558416, + "shape": [ + 3072 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.6.mlp.fc2.weight": { + "name": "encoder.model.blocks.6.mlp.fc2.weight", + "fan_in": 3072, + "initializer_fan_in": 3072, + "fan_out": 768, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 2489491228, + "shape": [ + 768, + 3072 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.6.mlp.fc2.bias": { + "name": "encoder.model.blocks.6.mlp.fc2.bias", + "fan_in": 3072, + "initializer_fan_in": 3072, + "fan_out": 768, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 3406856446, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.7.norm1.weight": { + "name": "encoder.model.blocks.7.norm1.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 3275334278, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.7.norm1.bias": { + "name": "encoder.model.blocks.7.norm1.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 1085411731, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.7.attn.qkv.weight": { + "name": "encoder.model.blocks.7.attn.qkv.weight", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 2304, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 3509108836, + "shape": [ + 2304, + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.7.attn.qkv.bias": { + "name": "encoder.model.blocks.7.attn.qkv.bias", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 2304, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 2002202422, + "shape": [ + 2304 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.7.attn.proj.weight": { + "name": "encoder.model.blocks.7.attn.proj.weight", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 768, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 1219630416, + "shape": [ + 768, + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.7.attn.proj.bias": { + "name": "encoder.model.blocks.7.attn.proj.bias", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 768, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 4196839867, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.7.norm2.weight": { + "name": "encoder.model.blocks.7.norm2.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 1303815525, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.7.norm2.bias": { + "name": "encoder.model.blocks.7.norm2.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 3324404541, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.7.mlp.fc1.weight": { + "name": "encoder.model.blocks.7.mlp.fc1.weight", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 3072, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 3028617582, + "shape": [ + 3072, + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.7.mlp.fc1.bias": { + "name": "encoder.model.blocks.7.mlp.fc1.bias", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 3072, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 3498775334, + "shape": [ + 3072 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.7.mlp.fc2.weight": { + "name": "encoder.model.blocks.7.mlp.fc2.weight", + "fan_in": 3072, + "initializer_fan_in": 3072, + "fan_out": 768, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 973737613, + "shape": [ + 768, + 3072 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.7.mlp.fc2.bias": { + "name": "encoder.model.blocks.7.mlp.fc2.bias", + "fan_in": 3072, + "initializer_fan_in": 3072, + "fan_out": 768, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 1444897160, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.8.norm1.weight": { + "name": "encoder.model.blocks.8.norm1.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 2511148656, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.8.norm1.bias": { + "name": "encoder.model.blocks.8.norm1.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 841387746, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.8.attn.qkv.weight": { + "name": "encoder.model.blocks.8.attn.qkv.weight", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 2304, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 397079473, + "shape": [ + 2304, + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.8.attn.qkv.bias": { + "name": "encoder.model.blocks.8.attn.qkv.bias", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 2304, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 601877675, + "shape": [ + 2304 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.8.attn.proj.weight": { + "name": "encoder.model.blocks.8.attn.proj.weight", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 768, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 3201151288, + "shape": [ + 768, + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.8.attn.proj.bias": { + "name": "encoder.model.blocks.8.attn.proj.bias", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 768, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 1959581313, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.8.norm2.weight": { + "name": "encoder.model.blocks.8.norm2.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 455217555, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.8.norm2.bias": { + "name": "encoder.model.blocks.8.norm2.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 3031628876, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.8.mlp.fc1.weight": { + "name": "encoder.model.blocks.8.mlp.fc1.weight", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 3072, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 980381268, + "shape": [ + 3072, + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.8.mlp.fc1.bias": { + "name": "encoder.model.blocks.8.mlp.fc1.bias", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 3072, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 2250221520, + "shape": [ + 3072 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.8.mlp.fc2.weight": { + "name": "encoder.model.blocks.8.mlp.fc2.weight", + "fan_in": 3072, + "initializer_fan_in": 3072, + "fan_out": 768, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 3034606007, + "shape": [ + 768, + 3072 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.8.mlp.fc2.bias": { + "name": "encoder.model.blocks.8.mlp.fc2.bias", + "fan_in": 3072, + "initializer_fan_in": 3072, + "fan_out": 768, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 9164158, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.9.norm1.weight": { + "name": "encoder.model.blocks.9.norm1.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 144897798, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.9.norm1.bias": { + "name": "encoder.model.blocks.9.norm1.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 2843984525, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.9.attn.qkv.weight": { + "name": "encoder.model.blocks.9.attn.qkv.weight", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 2304, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 2416720114, + "shape": [ + 2304, + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.9.attn.qkv.bias": { + "name": "encoder.model.blocks.9.attn.qkv.bias", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 2304, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 2586064707, + "shape": [ + 2304 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.9.attn.proj.weight": { + "name": "encoder.model.blocks.9.attn.proj.weight", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 768, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 1369376729, + "shape": [ + 768, + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.9.attn.proj.bias": { + "name": "encoder.model.blocks.9.attn.proj.bias", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 768, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 3668199184, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.9.norm2.weight": { + "name": "encoder.model.blocks.9.norm2.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 2251157733, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.9.norm2.bias": { + "name": "encoder.model.blocks.9.norm2.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 790081571, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.9.mlp.fc1.weight": { + "name": "encoder.model.blocks.9.mlp.fc1.weight", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 3072, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 2483552197, + "shape": [ + 3072, + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.9.mlp.fc1.bias": { + "name": "encoder.model.blocks.9.mlp.fc1.bias", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 3072, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 454051494, + "shape": [ + 3072 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.9.mlp.fc2.weight": { + "name": "encoder.model.blocks.9.mlp.fc2.weight", + "fan_in": 3072, + "initializer_fan_in": 3072, + "fan_out": 768, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 445184038, + "shape": [ + 768, + 3072 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.9.mlp.fc2.bias": { + "name": "encoder.model.blocks.9.mlp.fc2.bias", + "fan_in": 3072, + "initializer_fan_in": 3072, + "fan_out": 768, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 2642686984, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.10.norm1.weight": { + "name": "encoder.model.blocks.10.norm1.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 2598660143, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.10.norm1.bias": { + "name": "encoder.model.blocks.10.norm1.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 3691678212, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.10.attn.qkv.weight": { + "name": "encoder.model.blocks.10.attn.qkv.weight", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 2304, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 3472242559, + "shape": [ + 2304, + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.10.attn.qkv.bias": { + "name": "encoder.model.blocks.10.attn.qkv.bias", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 2304, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 3624200624, + "shape": [ + 2304 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.10.attn.proj.weight": { + "name": "encoder.model.blocks.10.attn.proj.weight", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 768, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 3267887691, + "shape": [ + 768, + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.10.attn.proj.bias": { + "name": "encoder.model.blocks.10.attn.proj.bias", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 768, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 4266837096, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.10.norm2.weight": { + "name": "encoder.model.blocks.10.norm2.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 342585292, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.10.norm2.bias": { + "name": "encoder.model.blocks.10.norm2.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 1520367786, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.10.mlp.fc1.weight": { + "name": "encoder.model.blocks.10.mlp.fc1.weight", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 3072, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 2968616125, + "shape": [ + 3072, + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.10.mlp.fc1.bias": { + "name": "encoder.model.blocks.10.mlp.fc1.bias", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 3072, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 2304170383, + "shape": [ + 3072 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.10.mlp.fc2.weight": { + "name": "encoder.model.blocks.10.mlp.fc2.weight", + "fan_in": 3072, + "initializer_fan_in": 3072, + "fan_out": 768, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 1048476510, + "shape": [ + 768, + 3072 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.10.mlp.fc2.bias": { + "name": "encoder.model.blocks.10.mlp.fc2.bias", + "fan_in": 3072, + "initializer_fan_in": 3072, + "fan_out": 768, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 264416033, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.11.norm1.weight": { + "name": "encoder.model.blocks.11.norm1.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 132876633, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.11.norm1.bias": { + "name": "encoder.model.blocks.11.norm1.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 1202701931, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.11.attn.qkv.weight": { + "name": "encoder.model.blocks.11.attn.qkv.weight", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 2304, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 1230044220, + "shape": [ + 2304, + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.11.attn.qkv.bias": { + "name": "encoder.model.blocks.11.attn.qkv.bias", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 2304, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 1644114520, + "shape": [ + 2304 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.11.attn.proj.weight": { + "name": "encoder.model.blocks.11.attn.proj.weight", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 768, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 765113514, + "shape": [ + 768, + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.11.attn.proj.bias": { + "name": "encoder.model.blocks.11.attn.proj.bias", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 768, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 1346000377, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.11.norm2.weight": { + "name": "encoder.model.blocks.11.norm2.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 2305068730, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.11.norm2.bias": { + "name": "encoder.model.blocks.11.norm2.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 3241915589, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.11.mlp.fc1.weight": { + "name": "encoder.model.blocks.11.mlp.fc1.weight", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 3072, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 513404204, + "shape": [ + 3072, + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.11.mlp.fc1.bias": { + "name": "encoder.model.blocks.11.mlp.fc1.bias", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 3072, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 341391609, + "shape": [ + 3072 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.11.mlp.fc2.weight": { + "name": "encoder.model.blocks.11.mlp.fc2.weight", + "fan_in": 3072, + "initializer_fan_in": 3072, + "fan_out": 768, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 2417421007, + "shape": [ + 768, + 3072 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.11.mlp.fc2.bias": { + "name": "encoder.model.blocks.11.mlp.fc2.bias", + "fan_in": 3072, + "initializer_fan_in": 3072, + "fan_out": 768, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 2462927447, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.norm.weight": { + "name": "encoder.model.norm.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 972231102, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.norm.bias": { + "name": "encoder.model.norm.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 1959964971, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.head.weight": { + "name": "encoder.model.head.weight", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 1000, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 1281765035, + "shape": [ + 1000, + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.head.bias": { + "name": "encoder.model.head.bias", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 1000, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 3878749170, + "shape": [ + 1000 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.projection_blocks.0.project.0.weight": { + "name": "decoder.projection_blocks.0.project.0.weight", + "fan_in": 1536, + "initializer_fan_in": 1536, + "fan_out": 768, + "std": 0.02946278254943948, + "constant": null, + "native_initializer": "xavier_uniform_(gain=1)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder/initialize_head", + "key_crc32": 3257196354, + "shape": [ + 768, + 1536 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.projection_blocks.0.project.0.bias": { + "name": "decoder.projection_blocks.0.project.0.bias", + "fan_in": 1536, + "initializer_fan_in": 1536, + "fan_out": 768, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 1084875433, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.projection_blocks.1.project.0.weight": { + "name": "decoder.projection_blocks.1.project.0.weight", + "fan_in": 1536, + "initializer_fan_in": 1536, + "fan_out": 768, + "std": 0.02946278254943948, + "constant": null, + "native_initializer": "xavier_uniform_(gain=1)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder/initialize_head", + "key_crc32": 762735011, + "shape": [ + 768, + 1536 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.projection_blocks.1.project.0.bias": { + "name": "decoder.projection_blocks.1.project.0.bias", + "fan_in": 1536, + "initializer_fan_in": 1536, + "fan_out": 768, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 4005655352, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.projection_blocks.2.project.0.weight": { + "name": "decoder.projection_blocks.2.project.0.weight", + "fan_in": 1536, + "initializer_fan_in": 1536, + "fan_out": 768, + "std": 0.02946278254943948, + "constant": null, + "native_initializer": "xavier_uniform_(gain=1)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder/initialize_head", + "key_crc32": 3354440897, + "shape": [ + 768, + 1536 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.projection_blocks.2.project.0.bias": { + "name": "decoder.projection_blocks.2.project.0.bias", + "fan_in": 1536, + "initializer_fan_in": 1536, + "fan_out": 768, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 3339306954, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.projection_blocks.3.project.0.weight": { + "name": "decoder.projection_blocks.3.project.0.weight", + "fan_in": 1536, + "initializer_fan_in": 1536, + "fan_out": 768, + "std": 0.02946278254943948, + "constant": null, + "native_initializer": "xavier_uniform_(gain=1)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder/initialize_head", + "key_crc32": 681706016, + "shape": [ + 768, + 1536 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.projection_blocks.3.project.0.bias": { + "name": "decoder.projection_blocks.3.project.0.bias", + "fan_in": 1536, + "initializer_fan_in": 1536, + "fan_out": 768, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 1767986779, + "shape": [ + 768 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.reassemble_blocks.0.project_to_out_channel.weight": { + "name": "decoder.reassemble_blocks.0.project_to_out_channel.weight", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 256, + "std": 0.05103103630798288, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 632779987, + "shape": [ + 256, + 768, + 1, + 1 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.reassemble_blocks.0.project_to_out_channel.bias": { + "name": "decoder.reassemble_blocks.0.project_to_out_channel.bias", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 256, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 1919254035, + "shape": [ + 256 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.reassemble_blocks.0.upsample.weight": { + "name": "decoder.reassemble_blocks.0.upsample.weight", + "fan_in": 256, + "initializer_fan_in": 4096, + "fan_out": 4096, + "std": 0.009021097956087902, + "constant": null, + "native_initializer": "kaiming_uniform_(a=sqrt(5))", + "native_source": "torch 2.14 _ConvNd.reset_parameters; no timm/SMP override", + "key_crc32": 3949266174, + "shape": [ + 256, + 256, + 4, + 4 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.reassemble_blocks.0.upsample.bias": { + "name": "decoder.reassemble_blocks.0.upsample.bias", + "fan_in": 256, + "initializer_fan_in": 4096, + "fan_out": 4096, + "std": 0.009021097956087902, + "constant": null, + "native_initializer": "uniform_(-1/sqrt(fan_in),1/sqrt(fan_in))", + "native_source": "torch 2.14 _ConvNd.reset_parameters; no timm/SMP override", + "key_crc32": 2158831595, + "shape": [ + 256 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.reassemble_blocks.0.project_to_feature_dim.weight": { + "name": "decoder.reassemble_blocks.0.project_to_feature_dim.weight", + "fan_in": 2304, + "initializer_fan_in": 2304, + "fan_out": 2304, + "std": 0.02946278254943948, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 3353146733, + "shape": [ + 256, + 256, + 3, + 3 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.reassemble_blocks.1.project_to_out_channel.weight": { + "name": "decoder.reassemble_blocks.1.project_to_out_channel.weight", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 512, + "std": 0.05103103630798288, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 726703106, + "shape": [ + 512, + 768, + 1, + 1 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.reassemble_blocks.1.project_to_out_channel.bias": { + "name": "decoder.reassemble_blocks.1.project_to_out_channel.bias", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 512, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 291678007, + "shape": [ + 512 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.reassemble_blocks.1.upsample.weight": { + "name": "decoder.reassemble_blocks.1.upsample.weight", + "fan_in": 512, + "initializer_fan_in": 2048, + "fan_out": 2048, + "std": 0.01275775907699572, + "constant": null, + "native_initializer": "kaiming_uniform_(a=sqrt(5))", + "native_source": "torch 2.14 _ConvNd.reset_parameters; no timm/SMP override", + "key_crc32": 1824772029, + "shape": [ + 512, + 512, + 2, + 2 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.reassemble_blocks.1.upsample.bias": { + "name": "decoder.reassemble_blocks.1.upsample.bias", + "fan_in": 512, + "initializer_fan_in": 2048, + "fan_out": 2048, + "std": 0.01275775907699572, + "constant": null, + "native_initializer": "uniform_(-1/sqrt(fan_in),1/sqrt(fan_in))", + "native_source": "torch 2.14 _ConvNd.reset_parameters; no timm/SMP override", + "key_crc32": 962001923, + "shape": [ + 512 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.reassemble_blocks.1.project_to_feature_dim.weight": { + "name": "decoder.reassemble_blocks.1.project_to_feature_dim.weight", + "fan_in": 4608, + "initializer_fan_in": 4608, + "fan_out": 2304, + "std": 0.020833333333333332, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 3376094652, + "shape": [ + 256, + 512, + 3, + 3 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.reassemble_blocks.2.project_to_out_channel.weight": { + "name": "decoder.reassemble_blocks.2.project_to_out_channel.weight", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 1024, + "std": 0.05103103630798288, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 947430769, + "shape": [ + 1024, + 768, + 1, + 1 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.reassemble_blocks.2.project_to_out_channel.bias": { + "name": "decoder.reassemble_blocks.2.project_to_out_channel.bias", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 1024, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 3026898011, + "shape": [ + 1024 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.reassemble_blocks.2.project_to_feature_dim.weight": { + "name": "decoder.reassemble_blocks.2.project_to_feature_dim.weight", + "fan_in": 9216, + "initializer_fan_in": 9216, + "fan_out": 2304, + "std": 0.01473139127471974, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 3658687695, + "shape": [ + 256, + 1024, + 3, + 3 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.reassemble_blocks.3.project_to_out_channel.weight": { + "name": "decoder.reassemble_blocks.3.project_to_out_channel.weight", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 1024, + "std": 0.05103103630798288, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 916409760, + "shape": [ + 1024, + 768, + 1, + 1 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.reassemble_blocks.3.project_to_out_channel.bias": { + "name": "decoder.reassemble_blocks.3.project_to_out_channel.bias", + "fan_in": 768, + "initializer_fan_in": 768, + "fan_out": 1024, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 3614250367, + "shape": [ + 1024 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.reassemble_blocks.3.upsample.weight": { + "name": "decoder.reassemble_blocks.3.upsample.weight", + "fan_in": 9216, + "initializer_fan_in": 9216, + "fan_out": 9216, + "std": 0.01473139127471974, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 3103743866, + "shape": [ + 1024, + 1024, + 3, + 3 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.reassemble_blocks.3.upsample.bias": { + "name": "decoder.reassemble_blocks.3.upsample.bias", + "fan_in": 9216, + "initializer_fan_in": 9216, + "fan_out": 9216, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 2446347666, + "shape": [ + 1024 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.reassemble_blocks.3.project_to_feature_dim.weight": { + "name": "decoder.reassemble_blocks.3.project_to_feature_dim.weight", + "fan_in": 9216, + "initializer_fan_in": 9216, + "fan_out": 2304, + "std": 0.01473139127471974, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 3572812830, + "shape": [ + 256, + 1024, + 3, + 3 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.0.residual_conv_block1.conv_1.weight": { + "name": "decoder.fusion_blocks.0.residual_conv_block1.conv_1.weight", + "fan_in": 2304, + "initializer_fan_in": 2304, + "fan_out": 2304, + "std": 0.02946278254943948, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 167562136, + "shape": [ + 256, + 256, + 3, + 3 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.0.residual_conv_block1.batch_norm_1.weight": { + "name": "decoder.fusion_blocks.0.residual_conv_block1.batch_norm_1.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 2917830255, + "shape": [ + 256 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.0.residual_conv_block1.batch_norm_1.bias": { + "name": "decoder.fusion_blocks.0.residual_conv_block1.batch_norm_1.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 3608775076, + "shape": [ + 256 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.0.residual_conv_block1.conv_2.weight": { + "name": "decoder.fusion_blocks.0.residual_conv_block1.conv_2.weight", + "fan_in": 2304, + "initializer_fan_in": 2304, + "fan_out": 2304, + "std": 0.02946278254943948, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 2272513147, + "shape": [ + 256, + 256, + 3, + 3 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.0.residual_conv_block1.batch_norm_2.weight": { + "name": "decoder.fusion_blocks.0.residual_conv_block1.batch_norm_2.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 593856908, + "shape": [ + 256 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.0.residual_conv_block1.batch_norm_2.bias": { + "name": "decoder.fusion_blocks.0.residual_conv_block1.batch_norm_2.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 1368259338, + "shape": [ + 256 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.0.residual_conv_block2.conv_1.weight": { + "name": "decoder.fusion_blocks.0.residual_conv_block2.conv_1.weight", + "fan_in": 2304, + "initializer_fan_in": 2304, + "fan_out": 2304, + "std": 0.02946278254943948, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 411148769, + "shape": [ + 256, + 256, + 3, + 3 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.0.residual_conv_block2.batch_norm_1.weight": { + "name": "decoder.fusion_blocks.0.residual_conv_block2.batch_norm_1.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 3606318220, + "shape": [ + 256 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.0.residual_conv_block2.batch_norm_1.bias": { + "name": "decoder.fusion_blocks.0.residual_conv_block2.batch_norm_1.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 1951338253, + "shape": [ + 256 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.0.residual_conv_block2.conv_2.weight": { + "name": "decoder.fusion_blocks.0.residual_conv_block2.conv_2.weight", + "fan_in": 2304, + "initializer_fan_in": 2304, + "fan_out": 2304, + "std": 0.02946278254943948, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 2517542402, + "shape": [ + 256, + 256, + 3, + 3 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.0.residual_conv_block2.batch_norm_2.weight": { + "name": "decoder.fusion_blocks.0.residual_conv_block2.batch_norm_2.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 1484458863, + "shape": [ + 256 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.0.residual_conv_block2.batch_norm_2.bias": { + "name": "decoder.fusion_blocks.0.residual_conv_block2.batch_norm_2.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 4074470819, + "shape": [ + 256 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.0.project.weight": { + "name": "decoder.fusion_blocks.0.project.weight", + "fan_in": 256, + "initializer_fan_in": 256, + "fan_out": 256, + "std": 0.08838834764831845, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 3097418907, + "shape": [ + 256, + 256, + 1, + 1 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.0.project.bias": { + "name": "decoder.fusion_blocks.0.project.bias", + "fan_in": 256, + "initializer_fan_in": 256, + "fan_out": 256, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 2043584076, + "shape": [ + 256 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.1.residual_conv_block1.conv_1.weight": { + "name": "decoder.fusion_blocks.1.residual_conv_block1.conv_1.weight", + "fan_in": 2304, + "initializer_fan_in": 2304, + "fan_out": 2304, + "std": 0.02946278254943948, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 2626428685, + "shape": [ + 256, + 256, + 3, + 3 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.1.residual_conv_block1.batch_norm_1.weight": { + "name": "decoder.fusion_blocks.1.residual_conv_block1.batch_norm_1.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 215157377, + "shape": [ + 256 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.1.residual_conv_block1.batch_norm_1.bias": { + "name": "decoder.fusion_blocks.1.residual_conv_block1.batch_norm_1.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 2019367907, + "shape": [ + 256 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.1.residual_conv_block1.conv_2.weight": { + "name": "decoder.fusion_blocks.1.residual_conv_block1.conv_2.weight", + "fan_in": 2304, + "initializer_fan_in": 2304, + "fan_out": 2304, + "std": 0.02946278254943948, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 302192878, + "shape": [ + 256, + 256, + 3, + 3 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.1.residual_conv_block1.batch_norm_2.weight": { + "name": "decoder.fusion_blocks.1.residual_conv_block1.batch_norm_2.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 2187070818, + "shape": [ + 256 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.1.residual_conv_block1.batch_norm_2.bias": { + "name": "decoder.fusion_blocks.1.residual_conv_block1.batch_norm_2.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 4274612557, + "shape": [ + 256 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.1.residual_conv_block2.conv_1.weight": { + "name": "decoder.fusion_blocks.1.residual_conv_block2.conv_1.weight", + "fan_in": 2304, + "initializer_fan_in": 2304, + "fan_out": 2304, + "std": 0.02946278254943948, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 2381411700, + "shape": [ + 256, + 256, + 3, + 3 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.1.residual_conv_block2.batch_norm_1.weight": { + "name": "decoder.fusion_blocks.1.residual_conv_block2.batch_norm_1.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 2009958498, + "shape": [ + 256 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.1.residual_conv_block2.batch_norm_1.bias": { + "name": "decoder.fusion_blocks.1.residual_conv_block2.batch_norm_1.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 3674971466, + "shape": [ + 256 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.1.residual_conv_block2.conv_2.weight": { + "name": "decoder.fusion_blocks.1.residual_conv_block2.conv_2.weight", + "fan_in": 2304, + "initializer_fan_in": 2304, + "fan_out": 2304, + "std": 0.02946278254943948, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 58618519, + "shape": [ + 256, + 256, + 3, + 3 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.1.residual_conv_block2.batch_norm_2.weight": { + "name": "decoder.fusion_blocks.1.residual_conv_block2.batch_norm_2.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 4181888897, + "shape": [ + 256 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.1.residual_conv_block2.batch_norm_2.bias": { + "name": "decoder.fusion_blocks.1.residual_conv_block2.batch_norm_2.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 1570762724, + "shape": [ + 256 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.1.project.weight": { + "name": "decoder.fusion_blocks.1.project.weight", + "fan_in": 256, + "initializer_fan_in": 256, + "fan_out": 256, + "std": 0.08838834764831845, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 385240330, + "shape": [ + 256, + 256, + 1, + 1 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.1.project.bias": { + "name": "decoder.fusion_blocks.1.project.bias", + "fan_in": 256, + "initializer_fan_in": 256, + "fan_out": 256, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 3837886266, + "shape": [ + 256 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.2.residual_conv_block1.conv_1.weight": { + "name": "decoder.fusion_blocks.2.residual_conv_block1.conv_1.weight", + "fan_in": 2304, + "initializer_fan_in": 2304, + "fan_out": 2304, + "std": 0.02946278254943948, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 4167853299, + "shape": [ + 256, + 256, + 3, + 3 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.2.residual_conv_block1.batch_norm_1.weight": { + "name": "decoder.fusion_blocks.2.residual_conv_block1.batch_norm_1.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 887652850, + "shape": [ + 256 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.2.residual_conv_block1.batch_norm_1.bias": { + "name": "decoder.fusion_blocks.2.residual_conv_block1.batch_norm_1.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 1390521195, + "shape": [ + 256 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.2.residual_conv_block1.conv_2.weight": { + "name": "decoder.fusion_blocks.2.residual_conv_block1.conv_2.weight", + "fan_in": 2304, + "initializer_fan_in": 2304, + "fan_out": 2304, + "std": 0.02946278254943948, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 1994613520, + "shape": [ + 256, + 256, + 3, + 3 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.2.residual_conv_block1.batch_norm_2.weight": { + "name": "decoder.fusion_blocks.2.residual_conv_block1.batch_norm_2.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 3127346705, + "shape": [ + 256 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.2.residual_conv_block1.batch_norm_2.bias": { + "name": "decoder.fusion_blocks.2.residual_conv_block1.batch_norm_2.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 3564493253, + "shape": [ + 256 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.2.residual_conv_block2.conv_1.weight": { + "name": "decoder.fusion_blocks.2.residual_conv_block2.conv_1.weight", + "fan_in": 2304, + "initializer_fan_in": 2304, + "fan_out": 2304, + "std": 0.02946278254943948, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 3910209162, + "shape": [ + 256, + 256, + 3, + 3 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.2.residual_conv_block2.batch_norm_1.weight": { + "name": "decoder.fusion_blocks.2.residual_conv_block2.batch_norm_1.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 1341522705, + "shape": [ + 256 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.2.residual_conv_block2.batch_norm_1.bias": { + "name": "decoder.fusion_blocks.2.residual_conv_block2.batch_norm_1.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 4055313858, + "shape": [ + 256 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.2.residual_conv_block2.conv_2.weight": { + "name": "decoder.fusion_blocks.2.residual_conv_block2.conv_2.weight", + "fan_in": 2304, + "initializer_fan_in": 2304, + "fan_out": 2304, + "std": 0.02946278254943948, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 1738410345, + "shape": [ + 256, + 256, + 3, + 3 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.2.residual_conv_block2.batch_norm_2.weight": { + "name": "decoder.fusion_blocks.2.residual_conv_block2.batch_norm_2.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 3245933810, + "shape": [ + 256 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.2.residual_conv_block2.batch_norm_2.bias": { + "name": "decoder.fusion_blocks.2.residual_conv_block2.batch_norm_2.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 1998806892, + "shape": [ + 256 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.2.project.weight": { + "name": "decoder.fusion_blocks.2.project.weight", + "fan_in": 256, + "initializer_fan_in": 256, + "fan_out": 256, + "std": 0.08838834764831845, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 1061091832, + "shape": [ + 256, + 256, + 1, + 1 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.2.project.bias": { + "name": "decoder.fusion_blocks.2.project.bias", + "fan_in": 256, + "initializer_fan_in": 256, + "fan_out": 256, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 2560645857, + "shape": [ + 256 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.3.residual_conv_block1.conv_1.weight": { + "name": "decoder.fusion_blocks.3.residual_conv_block1.conv_1.weight", + "fan_in": 2304, + "initializer_fan_in": 2304, + "fan_out": 2304, + "std": 0.02946278254943948, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 1830596710, + "shape": [ + 256, + 256, + 3, + 3 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.3.residual_conv_block1.batch_norm_1.weight": { + "name": "decoder.fusion_blocks.3.residual_conv_block1.batch_norm_1.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 2513503516, + "shape": [ + 256 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.3.residual_conv_block1.batch_norm_1.bias": { + "name": "decoder.fusion_blocks.3.residual_conv_block1.batch_norm_1.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 4255463724, + "shape": [ + 256 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.3.residual_conv_block1.conv_2.weight": { + "name": "decoder.fusion_blocks.3.residual_conv_block1.conv_2.weight", + "fan_in": 2304, + "initializer_fan_in": 2304, + "fan_out": 2304, + "std": 0.02946278254943948, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 3818108805, + "shape": [ + 256, + 256, + 3, + 3 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.3.residual_conv_block1.batch_norm_2.weight": { + "name": "decoder.fusion_blocks.3.residual_conv_block1.batch_norm_2.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 459145983, + "shape": [ + 256 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.3.residual_conv_block1.batch_norm_2.bias": { + "name": "decoder.fusion_blocks.3.residual_conv_block1.batch_norm_2.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 2066828162, + "shape": [ + 256 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.3.residual_conv_block2.conv_1.weight": { + "name": "decoder.fusion_blocks.3.residual_conv_block2.conv_1.weight", + "fan_in": 2304, + "initializer_fan_in": 2304, + "fan_out": 2304, + "std": 0.02946278254943948, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 2086787615, + "shape": [ + 256, + 256, + 3, + 3 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.3.residual_conv_block2.batch_norm_1.weight": { + "name": "decoder.fusion_blocks.3.residual_conv_block2.batch_norm_1.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 4006578175, + "shape": [ + 256 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.3.residual_conv_block2.batch_norm_1.bias": { + "name": "decoder.fusion_blocks.3.residual_conv_block2.batch_norm_1.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 1593032581, + "shape": [ + 256 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.3.residual_conv_block2.conv_2.weight": { + "name": "decoder.fusion_blocks.3.residual_conv_block2.conv_2.weight", + "fan_in": 2304, + "initializer_fan_in": 2304, + "fan_out": 2304, + "std": 0.02946278254943948, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 4075740668, + "shape": [ + 256, + 256, + 3, + 3 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.3.residual_conv_block2.batch_norm_2.weight": { + "name": "decoder.fusion_blocks.3.residual_conv_block2.batch_norm_2.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 1614839836, + "shape": [ + 256 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.3.residual_conv_block2.batch_norm_2.bias": { + "name": "decoder.fusion_blocks.3.residual_conv_block2.batch_norm_2.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 3630681387, + "shape": [ + 256 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.3.project.weight": { + "name": "decoder.fusion_blocks.3.project.weight", + "fan_in": 256, + "initializer_fan_in": 256, + "fan_out": 256, + "std": 0.08838834764831845, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 2438359145, + "shape": [ + 256, + 256, + 1, + 1 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.3.project.bias": { + "name": "decoder.fusion_blocks.3.project.bias", + "fan_in": 256, + "initializer_fan_in": 256, + "fan_out": 256, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 95402903, + "shape": [ + 256 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "segmentation_head.head.0.weight": { + "name": "segmentation_head.head.0.weight", + "fan_in": 2304, + "initializer_fan_in": 2304, + "fan_out": 2304, + "std": 0.020833333333333332, + "constant": null, + "native_initializer": "xavier_uniform_(gain=1)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder/initialize_head", + "key_crc32": 3778925485, + "shape": [ + 256, + 256, + 3, + 3 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "segmentation_head.head.1.weight": { + "name": "segmentation_head.head.1.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 764924723, + "shape": [ + 256 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "segmentation_head.head.1.bias": { + "name": "segmentation_head.head.1.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 1523149683, + "shape": [ + 256 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "segmentation_head.head.4.weight": { + "name": "segmentation_head.head.4.weight", + "fan_in": 256, + "initializer_fan_in": 256, + "fan_out": 2, + "std": 0.08804509063256238, + "constant": null, + "native_initializer": "xavier_uniform_(gain=1)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder/initialize_head", + "key_crc32": 1702354263, + "shape": [ + 2, + 256, + 1, + 1 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "segmentation_head.head.4.bias": { + "name": "segmentation_head.head.4.bias", + "fan_in": 256, + "initializer_fan_in": 256, + "fan_out": 2, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 168098496, + "shape": [ + 2 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + } + }, + "parameters_sha256": "5e6f022af7cc5b531de50e704ea180d3f224b81584ae3aad1e0b6b209df6c1da", + "float32_input_sha256": "316691251cb43ab2f326472fe4bc699039e8c644eee0069a18c82c10264ecba1", + "calibration": { + "batches": 4, + "batch_size": 2, + "seed": 14128, + "momentum": null, + "learned_parameters_unchanged": true + }, + "threads": 2, + "mkldnn": true, + "outputs": { + "encoder0_spatial": { + "shape": [ + 14, + 14, + 768 + ], + "mirror_vs_torch32": { + "max_abs": 2.86102294921875e-06, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 4.1964711527953114e-07, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 2.8294715573307094e-06, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 3.222102642059326, + "torch32": 3.222102403640747, + "torch64": 3.22210269937924 + }, + "float32_step_at_torch32_peak": 2.384185791015625e-07 + }, + "encoder0_class": { + "shape": [ + 1, + 1, + 768 + ], + "mirror_vs_torch32": { + "max_abs": 1.430511474609375e-06, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 3.340286016673133e-07, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 1.4038996059007047e-06, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 2.06477952003479, + "torch32": 2.064779281616211, + "torch64": 2.064779618798525 + }, + "float32_step_at_torch32_peak": 2.384185791015625e-07 + }, + "encoder1_spatial": { + "shape": [ + 14, + 14, + 768 + ], + "mirror_vs_torch32": { + "max_abs": 4.0531158447265625e-06, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 8.979058296887388e-07, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 3.9723854154127825e-06, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 4.302837371826172, + "torch32": 4.302835464477539, + "torch64": 4.302837187931102 + }, + "float32_step_at_torch32_peak": 4.76837158203125e-07 + }, + "encoder1_class": { + "shape": [ + 1, + 1, + 768 + ], + "mirror_vs_torch32": { + "max_abs": 2.7120113372802734e-06, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 4.692307327691658e-07, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 2.452952583276158e-06, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 3.5673367977142334, + "torch32": 3.567335605621338, + "torch64": 3.567336718064548 + }, + "float32_step_at_torch32_peak": 2.384185791015625e-07 + }, + "encoder2_spatial": { + "shape": [ + 14, + 14, + 768 + ], + "mirror_vs_torch32": { + "max_abs": 5.245208740234375e-06, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 1.0869003048696868e-06, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 5.244387477176815e-06, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 4.925760746002197, + "torch32": 4.9257612228393555, + "torch64": 4.925760836745057 + }, + "float32_step_at_torch32_peak": 4.76837158203125e-07 + }, + "encoder2_class": { + "shape": [ + 1, + 1, + 768 + ], + "mirror_vs_torch32": { + "max_abs": 3.3974647521972656e-06, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 5.553386146495143e-07, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 3.453539394904226e-06, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 3.634148597717285, + "torch32": 3.634150266647339, + "torch64": 3.6341485337888333 + }, + "float32_step_at_torch32_peak": 2.384185791015625e-07 + }, + "encoder3_spatial": { + "shape": [ + 14, + 14, + 768 + ], + "mirror_vs_torch32": { + "max_abs": 5.841255187988281e-06, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 1.3544170438528624e-06, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 5.602253484338071e-06, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 6.513648986816406, + "torch32": 6.513647079467773, + "torch64": 6.513648906134652 + }, + "float32_step_at_torch32_peak": 4.76837158203125e-07 + }, + "encoder3_class": { + "shape": [ + 1, + 1, + 768 + ], + "mirror_vs_torch32": { + "max_abs": 3.5762786865234375e-06, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 7.955601257769729e-07, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 3.4960855856969175e-06, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 4.831905841827393, + "torch32": 4.831908226013184, + "torch64": 4.831906102949707 + }, + "float32_step_at_torch32_peak": 4.76837158203125e-07 + }, + "readout0": { + "shape": [ + 14, + 14, + 768 + ], + "mirror_vs_torch32": { + "max_abs": 2.86102294921875e-06, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 4.778180868747484e-07, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 2.734255279079889e-06, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 3.3834476470947266, + "torch32": 3.383448600769043, + "torch64": 3.383447680947421 + }, + "float32_step_at_torch32_peak": 2.384185791015625e-07 + }, + "reassemble0": { + "shape": [ + 56, + 56, + 256 + ], + "mirror_vs_torch32": { + "max_abs": 1.6689300537109375e-06, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 8.330833495273637e-08, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 1.6553117766493486e-06, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 0.6666606068611145, + "torch32": 0.6666603088378906, + "torch64": 0.6666605876339797 + }, + "float32_step_at_torch32_peak": 5.960464477539063e-08 + }, + "readout1": { + "shape": [ + 14, + 14, + 768 + ], + "mirror_vs_torch32": { + "max_abs": 4.172325134277344e-06, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 6.174731681518608e-07, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 3.995259936218076e-06, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 5.251613140106201, + "torch32": 5.251613140106201, + "torch64": 5.251613430580202 + }, + "float32_step_at_torch32_peak": 4.76837158203125e-07 + }, + "reassemble1": { + "shape": [ + 28, + 28, + 256 + ], + "mirror_vs_torch32": { + "max_abs": 5.364418029785156e-06, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 3.02063282303644e-07, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 5.277206888143482e-06, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 1.9503870010375977, + "torch32": 1.9503860473632812, + "torch64": 1.9503869731303207 + }, + "float32_step_at_torch32_peak": 1.1920928955078125e-07 + }, + "readout2": { + "shape": [ + 14, + 14, + 768 + ], + "mirror_vs_torch32": { + "max_abs": 5.7220458984375e-06, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 1.0070199449874195e-06, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 4.998516255794172e-06, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 6.405412673950195, + "torch32": 6.40540885925293, + "torch64": 6.405412309307729 + }, + "float32_step_at_torch32_peak": 4.76837158203125e-07 + }, + "reassemble2": { + "shape": [ + 14, + 14, + 256 + ], + "mirror_vs_torch32": { + "max_abs": 2.9087066650390625e-05, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 1.209972724680597e-06, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 2.864820978132343e-05, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 8.36888599395752, + "torch32": 8.368870735168457, + "torch64": 8.36888604989637 + }, + "float32_step_at_torch32_peak": 9.5367431640625e-07 + }, + "readout3": { + "shape": [ + 14, + 14, + 768 + ], + "mirror_vs_torch32": { + "max_abs": 6.318092346191406e-06, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 1.218506491706961e-06, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 6.230157828079896e-06, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 6.370104789733887, + "torch32": 6.370105743408203, + "torch64": 6.370105060009403 + }, + "float32_step_at_torch32_peak": 4.76837158203125e-07 + }, + "reassemble3": { + "shape": [ + 7, + 7, + 256 + ], + "mirror_vs_torch32": { + "max_abs": 4.00543212890625e-05, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 1.947000683344413e-06, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 4.079645307797364e-05, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 10.703503608703613, + "torch32": 10.703495025634766, + "torch64": 10.703504011701082 + }, + "float32_step_at_torch32_peak": 9.5367431640625e-07 + }, + "fusion0": { + "shape": [ + 14, + 14, + 256 + ], + "mirror_vs_torch32": { + "max_abs": 4.0531158447265625e-05, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 4.808787240406787e-06, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 4.1091202847010067e-05, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 17.85662078857422, + "torch32": 17.856613159179688, + "torch64": 17.856620191155006 + }, + "float32_step_at_torch32_peak": 1.9073486328125e-06 + }, + "fusion1": { + "shape": [ + 28, + 28, + 256 + ], + "mirror_vs_torch32": { + "max_abs": 7.390975952148438e-05, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 1.3356744995363101e-05, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 7.528183924060405e-05, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 24.551647186279297, + "torch32": 24.551624298095703, + "torch64": 24.551644247280297 + }, + "float32_step_at_torch32_peak": 1.9073486328125e-06 + }, + "fusion2": { + "shape": [ + 56, + 56, + 256 + ], + "mirror_vs_torch32": { + "max_abs": 0.00012063980102539062, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 2.4713974737800015e-05, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 0.00012320127478027132, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 36.651214599609375, + "torch32": 36.651214599609375, + "torch64": 36.651217765076716 + }, + "float32_step_at_torch32_peak": 3.814697265625e-06 + }, + "fusion3": { + "shape": [ + 112, + 112, + 256 + ], + "mirror_vs_torch32": { + "max_abs": 0.00018787384033203125, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 4.644907568440715e-05, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 0.00018706553028202677, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 51.92999267578125, + "torch32": 51.930015563964844, + "torch64": 51.93001496534617 + }, + "float32_step_at_torch32_peak": 3.814697265625e-06 + }, + "head": { + "shape": [ + 112, + 112, + 2 + ], + "mirror_vs_torch32": { + "max_abs": 2.059340476989746e-05, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 4.209816711675529e-06, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 2.2253394143301186e-05, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 3.62732195854187, + "torch32": 3.6273183822631836, + "torch64": 3.627322003337144 + }, + "float32_step_at_torch32_peak": 2.384185791015625e-07 + }, + "logits": { + "shape": [ + 224, + 224, + 2 + ], + "mirror_vs_torch32": { + "max_abs": 2.0056962966918945e-05, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 5.705644484210737e-06, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 2.1333659354305645e-05, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 3.6080799102783203, + "torch32": 3.608076572418213, + "torch64": 3.608084171399335 + }, + "float32_step_at_torch32_peak": 2.384185791015625e-07 + } + } + }, + "reduced": { + "config": { + "encoder_width": 64, + "heads": 1, + "depth": 4, + "indices": [ + 0, + 1, + 2, + 3 + ], + "intermediate": [ + 4, + 8, + 16, + 16 + ], + "fusion": 4 + }, + "generator": { + "algorithm": "SplitMix64", + "key": "crc32(state_dict_name UTF-8), zero-extended to uint64", + "counter": "flat_index+1", + "top_bits": 24, + "dyadic": "(u+0.5)/2^23-1", + "scale": "sqrt(3)*std_native in float64; one float32 cast", + "known_answers_asserted": true + }, + "initialization": { + "encoder.model.cls_token": { + "name": "encoder.model.cls_token", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 1e-06, + "constant": null, + "native_initializer": "normal_(std=1e-6)", + "native_source": "timm 1.0.30 VisionTransformer.init_weights", + "key_crc32": 1626377865, + "shape": [ + 1, + 1, + 64 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.pos_embed": { + "name": "encoder.model.pos_embed", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 VisionTransformer.init_weights", + "key_crc32": 1673483254, + "shape": [ + 1, + 197, + 64 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.patch_embed.proj.weight": { + "name": "encoder.model.patch_embed.proj.weight", + "fan_in": 1536, + "initializer_fan_in": 1536, + "fan_out": 16384, + "std": 0.01473139127471974, + "constant": null, + "native_initializer": "kaiming_uniform_(a=sqrt(5))", + "native_source": "torch 2.14 _ConvNd.reset_parameters; no timm/SMP override", + "key_crc32": 1351028131, + "shape": [ + 64, + 6, + 16, + 16 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.patch_embed.proj.bias": { + "name": "encoder.model.patch_embed.proj.bias", + "fan_in": 1536, + "initializer_fan_in": 1536, + "fan_out": 16384, + "std": 0.01473139127471974, + "constant": null, + "native_initializer": "uniform_(-1/sqrt(fan_in),1/sqrt(fan_in))", + "native_source": "torch 2.14 _ConvNd.reset_parameters; no timm/SMP override", + "key_crc32": 2908137453, + "shape": [ + 64 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.0.norm1.weight": { + "name": "encoder.model.blocks.0.norm1.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 2801010758, + "shape": [ + 64 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.0.norm1.bias": { + "name": "encoder.model.blocks.0.norm1.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 875231260, + "shape": [ + 64 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.0.attn.qkv.weight": { + "name": "encoder.model.blocks.0.attn.qkv.weight", + "fan_in": 64, + "initializer_fan_in": 64, + "fan_out": 192, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 4055546927, + "shape": [ + 192, + 64 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.0.attn.qkv.bias": { + "name": "encoder.model.blocks.0.attn.qkv.bias", + "fan_in": 64, + "initializer_fan_in": 64, + "fan_out": 192, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 3965067308, + "shape": [ + 192 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.0.attn.proj.weight": { + "name": "encoder.model.blocks.0.attn.proj.weight", + "fan_in": 64, + "initializer_fan_in": 64, + "fan_out": 64, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 2845581108, + "shape": [ + 64, + 64 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.0.attn.proj.bias": { + "name": "encoder.model.blocks.0.attn.proj.bias", + "fan_in": 64, + "initializer_fan_in": 64, + "fan_out": 64, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 132073934, + "shape": [ + 64 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.0.norm2.weight": { + "name": "encoder.model.blocks.0.norm2.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 679153573, + "shape": [ + 64 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.0.norm2.bias": { + "name": "encoder.model.blocks.0.norm2.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 2998831794, + "shape": [ + 64 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.0.mlp.fc1.weight": { + "name": "encoder.model.blocks.0.mlp.fc1.weight", + "fan_in": 64, + "initializer_fan_in": 64, + "fan_out": 256, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 1232924955, + "shape": [ + 256, + 64 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.0.mlp.fc1.bias": { + "name": "encoder.model.blocks.0.mlp.fc1.bias", + "fan_in": 64, + "initializer_fan_in": 64, + "fan_out": 256, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 3041311206, + "shape": [ + 256 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.0.mlp.fc2.weight": { + "name": "encoder.model.blocks.0.mlp.fc2.weight", + "fan_in": 256, + "initializer_fan_in": 256, + "fan_out": 64, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 3354654456, + "shape": [ + 64, + 256 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.0.mlp.fc2.bias": { + "name": "encoder.model.blocks.0.mlp.fc2.bias", + "fan_in": 256, + "initializer_fan_in": 256, + "fan_out": 64, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 869452616, + "shape": [ + 64 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.1.norm1.weight": { + "name": "encoder.model.blocks.1.norm1.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 1006364976, + "shape": [ + 64 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.1.norm1.bias": { + "name": "encoder.model.blocks.1.norm1.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 2945430643, + "shape": [ + 64 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.1.attn.qkv.weight": { + "name": "encoder.model.blocks.1.attn.qkv.weight", + "fan_in": 64, + "initializer_fan_in": 64, + "fan_out": 192, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 1981577068, + "shape": [ + 192, + 64 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.1.attn.qkv.bias": { + "name": "encoder.model.blocks.1.attn.qkv.bias", + "fan_in": 64, + "initializer_fan_in": 64, + "fan_out": 192, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 1437465540, + "shape": [ + 192 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.1.attn.proj.weight": { + "name": "encoder.model.blocks.1.attn.proj.weight", + "fan_in": 64, + "initializer_fan_in": 64, + "fan_out": 64, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 1187949013, + "shape": [ + 64, + 64 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.1.attn.proj.bias": { + "name": "encoder.model.blocks.1.attn.proj.bias", + "fan_in": 64, + "initializer_fan_in": 64, + "fan_out": 64, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 2847397983, + "shape": [ + 64 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.1.norm2.weight": { + "name": "encoder.model.blocks.1.norm2.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 3044339411, + "shape": [ + 64 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.1.norm2.bias": { + "name": "encoder.model.blocks.1.norm2.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 689686237, + "shape": [ + 64 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.1.mlp.fc1.weight": { + "name": "encoder.model.blocks.1.mlp.fc1.weight", + "fan_in": 64, + "initializer_fan_in": 64, + "fan_out": 256, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 3876872330, + "shape": [ + 256, + 64 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.1.mlp.fc1.bias": { + "name": "encoder.model.blocks.1.mlp.fc1.bias", + "fan_in": 64, + "initializer_fan_in": 64, + "fan_out": 256, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 675895440, + "shape": [ + 256 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.1.mlp.fc2.weight": { + "name": "encoder.model.blocks.1.mlp.fc2.weight", + "fan_in": 256, + "initializer_fan_in": 256, + "fan_out": 64, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 1771792233, + "shape": [ + 64, + 256 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.1.mlp.fc2.bias": { + "name": "encoder.model.blocks.1.mlp.fc2.bias", + "fan_in": 256, + "initializer_fan_in": 256, + "fan_out": 64, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 2933729854, + "shape": [ + 64 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.2.norm1.weight": { + "name": "encoder.model.blocks.2.norm1.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 1201327339, + "shape": [ + 64 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.2.norm1.bias": { + "name": "encoder.model.blocks.2.norm1.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 3625019011, + "shape": [ + 64 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.2.attn.qkv.weight": { + "name": "encoder.model.blocks.2.attn.qkv.weight", + "fan_in": 64, + "initializer_fan_in": 64, + "fan_out": 192, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 629550312, + "shape": [ + 192, + 64 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.2.attn.qkv.bias": { + "name": "encoder.model.blocks.2.attn.qkv.bias", + "fan_in": 64, + "initializer_fan_in": 64, + "fan_out": 192, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 1154519485, + "shape": [ + 192 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.2.attn.proj.weight": { + "name": "encoder.model.blocks.2.attn.proj.weight", + "fan_in": 64, + "initializer_fan_in": 64, + "fan_out": 64, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 2890429623, + "shape": [ + 64, + 64 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.2.attn.proj.bias": { + "name": "encoder.model.blocks.2.attn.proj.bias", + "fan_in": 64, + "initializer_fan_in": 64, + "fan_out": 64, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 2155834541, + "shape": [ + 64 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.2.norm2.weight": { + "name": "encoder.model.blocks.2.norm2.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 3373648648, + "shape": [ + 64 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.2.norm2.bias": { + "name": "encoder.model.blocks.2.norm2.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 1585779757, + "shape": [ + 64 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.2.mlp.fc1.weight": { + "name": "encoder.model.blocks.2.mlp.fc1.weight", + "fan_in": 64, + "initializer_fan_in": 64, + "fan_out": 256, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 3470578808, + "shape": [ + 256, + 64 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.2.mlp.fc1.bias": { + "name": "encoder.model.blocks.2.mlp.fc1.bias", + "fan_in": 64, + "initializer_fan_in": 64, + "fan_out": 256, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 1411939659, + "shape": [ + 256 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.2.mlp.fc2.weight": { + "name": "encoder.model.blocks.2.mlp.fc2.weight", + "fan_in": 256, + "initializer_fan_in": 256, + "fan_out": 64, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 1079235483, + "shape": [ + 64, + 256 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.2.mlp.fc2.bias": { + "name": "encoder.model.blocks.2.mlp.fc2.bias", + "fan_in": 256, + "initializer_fan_in": 256, + "fan_out": 64, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 3535540197, + "shape": [ + 64 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.3.norm1.weight": { + "name": "encoder.model.blocks.3.norm1.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 3667209629, + "shape": [ + 64 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.3.norm1.bias": { + "name": "encoder.model.blocks.3.norm1.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 1135880940, + "shape": [ + 64 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.3.attn.qkv.weight": { + "name": "encoder.model.blocks.3.attn.qkv.weight", + "fan_in": 64, + "initializer_fan_in": 64, + "fan_out": 192, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 2720065451, + "shape": [ + 192, + 64 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.3.attn.qkv.bias": { + "name": "encoder.model.blocks.3.attn.qkv.bias", + "fan_in": 64, + "initializer_fan_in": 64, + "fan_out": 192, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 4247472725, + "shape": [ + 192 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.3.attn.proj.weight": { + "name": "encoder.model.blocks.3.attn.proj.weight", + "fan_in": 64, + "initializer_fan_in": 64, + "fan_out": 64, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 1125827158, + "shape": [ + 64, + 64 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.3.attn.proj.bias": { + "name": "encoder.model.blocks.3.attn.proj.bias", + "fan_in": 64, + "initializer_fan_in": 64, + "fan_out": 64, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 773324092, + "shape": [ + 64 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.3.norm2.weight": { + "name": "encoder.model.blocks.3.norm2.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 1411000958, + "shape": [ + 64 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.3.norm2.bias": { + "name": "encoder.model.blocks.3.norm2.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 3307231298, + "shape": [ + 64 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.3.mlp.fc1.weight": { + "name": "encoder.model.blocks.3.mlp.fc1.weight", + "fan_in": 64, + "initializer_fan_in": 64, + "fan_out": 256, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 1622427113, + "shape": [ + 256, + 64 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.3.mlp.fc1.bias": { + "name": "encoder.model.blocks.3.mlp.fc1.bias", + "fan_in": 64, + "initializer_fan_in": 64, + "fan_out": 256, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 3374816317, + "shape": [ + 256 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.3.mlp.fc2.weight": { + "name": "encoder.model.blocks.3.mlp.fc2.weight", + "fan_in": 256, + "initializer_fan_in": 256, + "fan_out": 64, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 3996860938, + "shape": [ + 64, + 256 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.blocks.3.mlp.fc2.bias": { + "name": "encoder.model.blocks.3.mlp.fc2.bias", + "fan_in": 256, + "initializer_fan_in": 256, + "fan_out": 64, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 1337192083, + "shape": [ + 64 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.norm.weight": { + "name": "encoder.model.norm.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 972231102, + "shape": [ + 64 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.norm.bias": { + "name": "encoder.model.norm.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 1959964971, + "shape": [ + 64 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.head.weight": { + "name": "encoder.model.head.weight", + "fan_in": 64, + "initializer_fan_in": 64, + "fan_out": 1000, + "std": 0.02, + "constant": null, + "native_initializer": "trunc_normal_(std=0.02,a=-2,b=2)", + "native_source": "timm 1.0.30 init_weights_vit_timm", + "key_crc32": 1281765035, + "shape": [ + 1000, + 64 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "encoder.model.head.bias": { + "name": "encoder.model.head.bias", + "fan_in": 64, + "initializer_fan_in": 64, + "fan_out": 1000, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 3878749170, + "shape": [ + 1000 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.projection_blocks.0.project.0.weight": { + "name": "decoder.projection_blocks.0.project.0.weight", + "fan_in": 128, + "initializer_fan_in": 128, + "fan_out": 64, + "std": 0.10206207261596575, + "constant": null, + "native_initializer": "xavier_uniform_(gain=1)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder/initialize_head", + "key_crc32": 3257196354, + "shape": [ + 64, + 128 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.projection_blocks.0.project.0.bias": { + "name": "decoder.projection_blocks.0.project.0.bias", + "fan_in": 128, + "initializer_fan_in": 128, + "fan_out": 64, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 1084875433, + "shape": [ + 64 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.projection_blocks.1.project.0.weight": { + "name": "decoder.projection_blocks.1.project.0.weight", + "fan_in": 128, + "initializer_fan_in": 128, + "fan_out": 64, + "std": 0.10206207261596575, + "constant": null, + "native_initializer": "xavier_uniform_(gain=1)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder/initialize_head", + "key_crc32": 762735011, + "shape": [ + 64, + 128 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.projection_blocks.1.project.0.bias": { + "name": "decoder.projection_blocks.1.project.0.bias", + "fan_in": 128, + "initializer_fan_in": 128, + "fan_out": 64, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 4005655352, + "shape": [ + 64 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.projection_blocks.2.project.0.weight": { + "name": "decoder.projection_blocks.2.project.0.weight", + "fan_in": 128, + "initializer_fan_in": 128, + "fan_out": 64, + "std": 0.10206207261596575, + "constant": null, + "native_initializer": "xavier_uniform_(gain=1)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder/initialize_head", + "key_crc32": 3354440897, + "shape": [ + 64, + 128 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.projection_blocks.2.project.0.bias": { + "name": "decoder.projection_blocks.2.project.0.bias", + "fan_in": 128, + "initializer_fan_in": 128, + "fan_out": 64, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 3339306954, + "shape": [ + 64 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.projection_blocks.3.project.0.weight": { + "name": "decoder.projection_blocks.3.project.0.weight", + "fan_in": 128, + "initializer_fan_in": 128, + "fan_out": 64, + "std": 0.10206207261596575, + "constant": null, + "native_initializer": "xavier_uniform_(gain=1)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder/initialize_head", + "key_crc32": 681706016, + "shape": [ + 64, + 128 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.projection_blocks.3.project.0.bias": { + "name": "decoder.projection_blocks.3.project.0.bias", + "fan_in": 128, + "initializer_fan_in": 128, + "fan_out": 64, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 1767986779, + "shape": [ + 64 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.reassemble_blocks.0.project_to_out_channel.weight": { + "name": "decoder.reassemble_blocks.0.project_to_out_channel.weight", + "fan_in": 64, + "initializer_fan_in": 64, + "fan_out": 4, + "std": 0.1767766952966369, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 632779987, + "shape": [ + 4, + 64, + 1, + 1 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.reassemble_blocks.0.project_to_out_channel.bias": { + "name": "decoder.reassemble_blocks.0.project_to_out_channel.bias", + "fan_in": 64, + "initializer_fan_in": 64, + "fan_out": 4, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 1919254035, + "shape": [ + 4 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.reassemble_blocks.0.upsample.weight": { + "name": "decoder.reassemble_blocks.0.upsample.weight", + "fan_in": 4, + "initializer_fan_in": 64, + "fan_out": 64, + "std": 0.07216878364870322, + "constant": null, + "native_initializer": "kaiming_uniform_(a=sqrt(5))", + "native_source": "torch 2.14 _ConvNd.reset_parameters; no timm/SMP override", + "key_crc32": 3949266174, + "shape": [ + 4, + 4, + 4, + 4 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.reassemble_blocks.0.upsample.bias": { + "name": "decoder.reassemble_blocks.0.upsample.bias", + "fan_in": 4, + "initializer_fan_in": 64, + "fan_out": 64, + "std": 0.07216878364870322, + "constant": null, + "native_initializer": "uniform_(-1/sqrt(fan_in),1/sqrt(fan_in))", + "native_source": "torch 2.14 _ConvNd.reset_parameters; no timm/SMP override", + "key_crc32": 2158831595, + "shape": [ + 4 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.reassemble_blocks.0.project_to_feature_dim.weight": { + "name": "decoder.reassemble_blocks.0.project_to_feature_dim.weight", + "fan_in": 36, + "initializer_fan_in": 36, + "fan_out": 36, + "std": 0.23570226039551584, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 3353146733, + "shape": [ + 4, + 4, + 3, + 3 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.reassemble_blocks.1.project_to_out_channel.weight": { + "name": "decoder.reassemble_blocks.1.project_to_out_channel.weight", + "fan_in": 64, + "initializer_fan_in": 64, + "fan_out": 8, + "std": 0.1767766952966369, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 726703106, + "shape": [ + 8, + 64, + 1, + 1 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.reassemble_blocks.1.project_to_out_channel.bias": { + "name": "decoder.reassemble_blocks.1.project_to_out_channel.bias", + "fan_in": 64, + "initializer_fan_in": 64, + "fan_out": 8, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 291678007, + "shape": [ + 8 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.reassemble_blocks.1.upsample.weight": { + "name": "decoder.reassemble_blocks.1.upsample.weight", + "fan_in": 8, + "initializer_fan_in": 32, + "fan_out": 32, + "std": 0.10206207261596575, + "constant": null, + "native_initializer": "kaiming_uniform_(a=sqrt(5))", + "native_source": "torch 2.14 _ConvNd.reset_parameters; no timm/SMP override", + "key_crc32": 1824772029, + "shape": [ + 8, + 8, + 2, + 2 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.reassemble_blocks.1.upsample.bias": { + "name": "decoder.reassemble_blocks.1.upsample.bias", + "fan_in": 8, + "initializer_fan_in": 32, + "fan_out": 32, + "std": 0.10206207261596575, + "constant": null, + "native_initializer": "uniform_(-1/sqrt(fan_in),1/sqrt(fan_in))", + "native_source": "torch 2.14 _ConvNd.reset_parameters; no timm/SMP override", + "key_crc32": 962001923, + "shape": [ + 8 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.reassemble_blocks.1.project_to_feature_dim.weight": { + "name": "decoder.reassemble_blocks.1.project_to_feature_dim.weight", + "fan_in": 72, + "initializer_fan_in": 72, + "fan_out": 36, + "std": 0.16666666666666666, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 3376094652, + "shape": [ + 4, + 8, + 3, + 3 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.reassemble_blocks.2.project_to_out_channel.weight": { + "name": "decoder.reassemble_blocks.2.project_to_out_channel.weight", + "fan_in": 64, + "initializer_fan_in": 64, + "fan_out": 16, + "std": 0.1767766952966369, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 947430769, + "shape": [ + 16, + 64, + 1, + 1 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.reassemble_blocks.2.project_to_out_channel.bias": { + "name": "decoder.reassemble_blocks.2.project_to_out_channel.bias", + "fan_in": 64, + "initializer_fan_in": 64, + "fan_out": 16, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 3026898011, + "shape": [ + 16 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.reassemble_blocks.2.project_to_feature_dim.weight": { + "name": "decoder.reassemble_blocks.2.project_to_feature_dim.weight", + "fan_in": 144, + "initializer_fan_in": 144, + "fan_out": 36, + "std": 0.11785113019775792, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 3658687695, + "shape": [ + 4, + 16, + 3, + 3 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.reassemble_blocks.3.project_to_out_channel.weight": { + "name": "decoder.reassemble_blocks.3.project_to_out_channel.weight", + "fan_in": 64, + "initializer_fan_in": 64, + "fan_out": 16, + "std": 0.1767766952966369, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 916409760, + "shape": [ + 16, + 64, + 1, + 1 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.reassemble_blocks.3.project_to_out_channel.bias": { + "name": "decoder.reassemble_blocks.3.project_to_out_channel.bias", + "fan_in": 64, + "initializer_fan_in": 64, + "fan_out": 16, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 3614250367, + "shape": [ + 16 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.reassemble_blocks.3.upsample.weight": { + "name": "decoder.reassemble_blocks.3.upsample.weight", + "fan_in": 144, + "initializer_fan_in": 144, + "fan_out": 144, + "std": 0.11785113019775792, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 3103743866, + "shape": [ + 16, + 16, + 3, + 3 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.reassemble_blocks.3.upsample.bias": { + "name": "decoder.reassemble_blocks.3.upsample.bias", + "fan_in": 144, + "initializer_fan_in": 144, + "fan_out": 144, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 2446347666, + "shape": [ + 16 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.reassemble_blocks.3.project_to_feature_dim.weight": { + "name": "decoder.reassemble_blocks.3.project_to_feature_dim.weight", + "fan_in": 144, + "initializer_fan_in": 144, + "fan_out": 36, + "std": 0.11785113019775792, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 3572812830, + "shape": [ + 4, + 16, + 3, + 3 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.0.residual_conv_block1.conv_1.weight": { + "name": "decoder.fusion_blocks.0.residual_conv_block1.conv_1.weight", + "fan_in": 36, + "initializer_fan_in": 36, + "fan_out": 36, + "std": 0.23570226039551584, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 167562136, + "shape": [ + 4, + 4, + 3, + 3 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.0.residual_conv_block1.batch_norm_1.weight": { + "name": "decoder.fusion_blocks.0.residual_conv_block1.batch_norm_1.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 2917830255, + "shape": [ + 4 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.0.residual_conv_block1.batch_norm_1.bias": { + "name": "decoder.fusion_blocks.0.residual_conv_block1.batch_norm_1.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 3608775076, + "shape": [ + 4 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.0.residual_conv_block1.conv_2.weight": { + "name": "decoder.fusion_blocks.0.residual_conv_block1.conv_2.weight", + "fan_in": 36, + "initializer_fan_in": 36, + "fan_out": 36, + "std": 0.23570226039551584, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 2272513147, + "shape": [ + 4, + 4, + 3, + 3 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.0.residual_conv_block1.batch_norm_2.weight": { + "name": "decoder.fusion_blocks.0.residual_conv_block1.batch_norm_2.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 593856908, + "shape": [ + 4 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.0.residual_conv_block1.batch_norm_2.bias": { + "name": "decoder.fusion_blocks.0.residual_conv_block1.batch_norm_2.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 1368259338, + "shape": [ + 4 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.0.residual_conv_block2.conv_1.weight": { + "name": "decoder.fusion_blocks.0.residual_conv_block2.conv_1.weight", + "fan_in": 36, + "initializer_fan_in": 36, + "fan_out": 36, + "std": 0.23570226039551584, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 411148769, + "shape": [ + 4, + 4, + 3, + 3 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.0.residual_conv_block2.batch_norm_1.weight": { + "name": "decoder.fusion_blocks.0.residual_conv_block2.batch_norm_1.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 3606318220, + "shape": [ + 4 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.0.residual_conv_block2.batch_norm_1.bias": { + "name": "decoder.fusion_blocks.0.residual_conv_block2.batch_norm_1.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 1951338253, + "shape": [ + 4 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.0.residual_conv_block2.conv_2.weight": { + "name": "decoder.fusion_blocks.0.residual_conv_block2.conv_2.weight", + "fan_in": 36, + "initializer_fan_in": 36, + "fan_out": 36, + "std": 0.23570226039551584, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 2517542402, + "shape": [ + 4, + 4, + 3, + 3 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.0.residual_conv_block2.batch_norm_2.weight": { + "name": "decoder.fusion_blocks.0.residual_conv_block2.batch_norm_2.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 1484458863, + "shape": [ + 4 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.0.residual_conv_block2.batch_norm_2.bias": { + "name": "decoder.fusion_blocks.0.residual_conv_block2.batch_norm_2.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 4074470819, + "shape": [ + 4 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.0.project.weight": { + "name": "decoder.fusion_blocks.0.project.weight", + "fan_in": 4, + "initializer_fan_in": 4, + "fan_out": 4, + "std": 0.7071067811865476, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 3097418907, + "shape": [ + 4, + 4, + 1, + 1 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.0.project.bias": { + "name": "decoder.fusion_blocks.0.project.bias", + "fan_in": 4, + "initializer_fan_in": 4, + "fan_out": 4, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 2043584076, + "shape": [ + 4 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.1.residual_conv_block1.conv_1.weight": { + "name": "decoder.fusion_blocks.1.residual_conv_block1.conv_1.weight", + "fan_in": 36, + "initializer_fan_in": 36, + "fan_out": 36, + "std": 0.23570226039551584, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 2626428685, + "shape": [ + 4, + 4, + 3, + 3 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.1.residual_conv_block1.batch_norm_1.weight": { + "name": "decoder.fusion_blocks.1.residual_conv_block1.batch_norm_1.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 215157377, + "shape": [ + 4 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.1.residual_conv_block1.batch_norm_1.bias": { + "name": "decoder.fusion_blocks.1.residual_conv_block1.batch_norm_1.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 2019367907, + "shape": [ + 4 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.1.residual_conv_block1.conv_2.weight": { + "name": "decoder.fusion_blocks.1.residual_conv_block1.conv_2.weight", + "fan_in": 36, + "initializer_fan_in": 36, + "fan_out": 36, + "std": 0.23570226039551584, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 302192878, + "shape": [ + 4, + 4, + 3, + 3 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.1.residual_conv_block1.batch_norm_2.weight": { + "name": "decoder.fusion_blocks.1.residual_conv_block1.batch_norm_2.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 2187070818, + "shape": [ + 4 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.1.residual_conv_block1.batch_norm_2.bias": { + "name": "decoder.fusion_blocks.1.residual_conv_block1.batch_norm_2.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 4274612557, + "shape": [ + 4 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.1.residual_conv_block2.conv_1.weight": { + "name": "decoder.fusion_blocks.1.residual_conv_block2.conv_1.weight", + "fan_in": 36, + "initializer_fan_in": 36, + "fan_out": 36, + "std": 0.23570226039551584, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 2381411700, + "shape": [ + 4, + 4, + 3, + 3 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.1.residual_conv_block2.batch_norm_1.weight": { + "name": "decoder.fusion_blocks.1.residual_conv_block2.batch_norm_1.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 2009958498, + "shape": [ + 4 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.1.residual_conv_block2.batch_norm_1.bias": { + "name": "decoder.fusion_blocks.1.residual_conv_block2.batch_norm_1.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 3674971466, + "shape": [ + 4 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.1.residual_conv_block2.conv_2.weight": { + "name": "decoder.fusion_blocks.1.residual_conv_block2.conv_2.weight", + "fan_in": 36, + "initializer_fan_in": 36, + "fan_out": 36, + "std": 0.23570226039551584, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 58618519, + "shape": [ + 4, + 4, + 3, + 3 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.1.residual_conv_block2.batch_norm_2.weight": { + "name": "decoder.fusion_blocks.1.residual_conv_block2.batch_norm_2.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 4181888897, + "shape": [ + 4 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.1.residual_conv_block2.batch_norm_2.bias": { + "name": "decoder.fusion_blocks.1.residual_conv_block2.batch_norm_2.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 1570762724, + "shape": [ + 4 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.1.project.weight": { + "name": "decoder.fusion_blocks.1.project.weight", + "fan_in": 4, + "initializer_fan_in": 4, + "fan_out": 4, + "std": 0.7071067811865476, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 385240330, + "shape": [ + 4, + 4, + 1, + 1 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.1.project.bias": { + "name": "decoder.fusion_blocks.1.project.bias", + "fan_in": 4, + "initializer_fan_in": 4, + "fan_out": 4, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 3837886266, + "shape": [ + 4 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.2.residual_conv_block1.conv_1.weight": { + "name": "decoder.fusion_blocks.2.residual_conv_block1.conv_1.weight", + "fan_in": 36, + "initializer_fan_in": 36, + "fan_out": 36, + "std": 0.23570226039551584, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 4167853299, + "shape": [ + 4, + 4, + 3, + 3 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.2.residual_conv_block1.batch_norm_1.weight": { + "name": "decoder.fusion_blocks.2.residual_conv_block1.batch_norm_1.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 887652850, + "shape": [ + 4 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.2.residual_conv_block1.batch_norm_1.bias": { + "name": "decoder.fusion_blocks.2.residual_conv_block1.batch_norm_1.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 1390521195, + "shape": [ + 4 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.2.residual_conv_block1.conv_2.weight": { + "name": "decoder.fusion_blocks.2.residual_conv_block1.conv_2.weight", + "fan_in": 36, + "initializer_fan_in": 36, + "fan_out": 36, + "std": 0.23570226039551584, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 1994613520, + "shape": [ + 4, + 4, + 3, + 3 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.2.residual_conv_block1.batch_norm_2.weight": { + "name": "decoder.fusion_blocks.2.residual_conv_block1.batch_norm_2.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 3127346705, + "shape": [ + 4 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.2.residual_conv_block1.batch_norm_2.bias": { + "name": "decoder.fusion_blocks.2.residual_conv_block1.batch_norm_2.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 3564493253, + "shape": [ + 4 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.2.residual_conv_block2.conv_1.weight": { + "name": "decoder.fusion_blocks.2.residual_conv_block2.conv_1.weight", + "fan_in": 36, + "initializer_fan_in": 36, + "fan_out": 36, + "std": 0.23570226039551584, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 3910209162, + "shape": [ + 4, + 4, + 3, + 3 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.2.residual_conv_block2.batch_norm_1.weight": { + "name": "decoder.fusion_blocks.2.residual_conv_block2.batch_norm_1.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 1341522705, + "shape": [ + 4 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.2.residual_conv_block2.batch_norm_1.bias": { + "name": "decoder.fusion_blocks.2.residual_conv_block2.batch_norm_1.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 4055313858, + "shape": [ + 4 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.2.residual_conv_block2.conv_2.weight": { + "name": "decoder.fusion_blocks.2.residual_conv_block2.conv_2.weight", + "fan_in": 36, + "initializer_fan_in": 36, + "fan_out": 36, + "std": 0.23570226039551584, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 1738410345, + "shape": [ + 4, + 4, + 3, + 3 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.2.residual_conv_block2.batch_norm_2.weight": { + "name": "decoder.fusion_blocks.2.residual_conv_block2.batch_norm_2.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 3245933810, + "shape": [ + 4 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.2.residual_conv_block2.batch_norm_2.bias": { + "name": "decoder.fusion_blocks.2.residual_conv_block2.batch_norm_2.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 1998806892, + "shape": [ + 4 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.2.project.weight": { + "name": "decoder.fusion_blocks.2.project.weight", + "fan_in": 4, + "initializer_fan_in": 4, + "fan_out": 4, + "std": 0.7071067811865476, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 1061091832, + "shape": [ + 4, + 4, + 1, + 1 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.2.project.bias": { + "name": "decoder.fusion_blocks.2.project.bias", + "fan_in": 4, + "initializer_fan_in": 4, + "fan_out": 4, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 2560645857, + "shape": [ + 4 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.3.residual_conv_block1.conv_1.weight": { + "name": "decoder.fusion_blocks.3.residual_conv_block1.conv_1.weight", + "fan_in": 36, + "initializer_fan_in": 36, + "fan_out": 36, + "std": 0.23570226039551584, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 1830596710, + "shape": [ + 4, + 4, + 3, + 3 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.3.residual_conv_block1.batch_norm_1.weight": { + "name": "decoder.fusion_blocks.3.residual_conv_block1.batch_norm_1.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 2513503516, + "shape": [ + 4 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.3.residual_conv_block1.batch_norm_1.bias": { + "name": "decoder.fusion_blocks.3.residual_conv_block1.batch_norm_1.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 4255463724, + "shape": [ + 4 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.3.residual_conv_block1.conv_2.weight": { + "name": "decoder.fusion_blocks.3.residual_conv_block1.conv_2.weight", + "fan_in": 36, + "initializer_fan_in": 36, + "fan_out": 36, + "std": 0.23570226039551584, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 3818108805, + "shape": [ + 4, + 4, + 3, + 3 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.3.residual_conv_block1.batch_norm_2.weight": { + "name": "decoder.fusion_blocks.3.residual_conv_block1.batch_norm_2.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 459145983, + "shape": [ + 4 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.3.residual_conv_block1.batch_norm_2.bias": { + "name": "decoder.fusion_blocks.3.residual_conv_block1.batch_norm_2.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 2066828162, + "shape": [ + 4 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.3.residual_conv_block2.conv_1.weight": { + "name": "decoder.fusion_blocks.3.residual_conv_block2.conv_1.weight", + "fan_in": 36, + "initializer_fan_in": 36, + "fan_out": 36, + "std": 0.23570226039551584, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 2086787615, + "shape": [ + 4, + 4, + 3, + 3 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.3.residual_conv_block2.batch_norm_1.weight": { + "name": "decoder.fusion_blocks.3.residual_conv_block2.batch_norm_1.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 4006578175, + "shape": [ + 4 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.3.residual_conv_block2.batch_norm_1.bias": { + "name": "decoder.fusion_blocks.3.residual_conv_block2.batch_norm_1.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 1593032581, + "shape": [ + 4 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.3.residual_conv_block2.conv_2.weight": { + "name": "decoder.fusion_blocks.3.residual_conv_block2.conv_2.weight", + "fan_in": 36, + "initializer_fan_in": 36, + "fan_out": 36, + "std": 0.23570226039551584, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 4075740668, + "shape": [ + 4, + 4, + 3, + 3 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.3.residual_conv_block2.batch_norm_2.weight": { + "name": "decoder.fusion_blocks.3.residual_conv_block2.batch_norm_2.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 1614839836, + "shape": [ + 4 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.3.residual_conv_block2.batch_norm_2.bias": { + "name": "decoder.fusion_blocks.3.residual_conv_block2.batch_norm_2.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 3630681387, + "shape": [ + 4 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.3.project.weight": { + "name": "decoder.fusion_blocks.3.project.weight", + "fan_in": 4, + "initializer_fan_in": 4, + "fan_out": 4, + "std": 0.7071067811865476, + "constant": null, + "native_initializer": "kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder", + "key_crc32": 2438359145, + "shape": [ + 4, + 4, + 1, + 1 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "decoder.fusion_blocks.3.project.bias": { + "name": "decoder.fusion_blocks.3.project.bias", + "fan_in": 4, + "initializer_fan_in": 4, + "fan_out": 4, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 95402903, + "shape": [ + 4 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "segmentation_head.head.0.weight": { + "name": "segmentation_head.head.0.weight", + "fan_in": 36, + "initializer_fan_in": 36, + "fan_out": 36, + "std": 0.16666666666666666, + "constant": null, + "native_initializer": "xavier_uniform_(gain=1)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder/initialize_head", + "key_crc32": 3778925485, + "shape": [ + 4, + 4, + 3, + 3 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "segmentation_head.head.1.weight": { + "name": "segmentation_head.head.1.weight", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 1.0, + "native_initializer": "ones_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 764924723, + "shape": [ + 4 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "segmentation_head.head.1.bias": { + "name": "segmentation_head.head.1.bias", + "fan_in": null, + "initializer_fan_in": null, + "fan_out": null, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine", + "key_crc32": 1523149683, + "shape": [ + 4 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "segmentation_head.head.4.weight": { + "name": "segmentation_head.head.4.weight", + "fan_in": 4, + "initializer_fan_in": 4, + "fan_out": 2, + "std": 0.5773502691896257, + "constant": null, + "native_initializer": "xavier_uniform_(gain=1)", + "native_source": "SMP 0.5.0 base.initialization.initialize_decoder/initialize_head", + "key_crc32": 1702354263, + "shape": [ + 2, + 4, + 1, + 1 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + }, + "segmentation_head.head.4.bias": { + "name": "segmentation_head.head.4.bias", + "fan_in": 4, + "initializer_fan_in": 4, + "fan_out": 2, + "std": 0.0, + "constant": 0.0, + "native_initializer": "zeros_", + "native_source": "timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization", + "key_crc32": 168098496, + "shape": [ + 2 + ], + "second_build_bit_identical": true, + "exact_values_asserted": true + } + }, + "parameters_sha256": "1b14a04e99ceb9e71f432b00d0002f536f204ad6ebdbb8f57732a081d60522f4", + "float32_input_sha256": "316691251cb43ab2f326472fe4bc699039e8c644eee0069a18c82c10264ecba1", + "calibration": { + "batches": 4, + "batch_size": 2, + "seed": 14128, + "momentum": null, + "learned_parameters_unchanged": true + }, + "threads": 2, + "mkldnn": true, + "outputs": { + "encoder0_spatial": { + "shape": [ + 14, + 14, + 64 + ], + "mirror_vs_torch32": { + "max_abs": 8.046627044677734e-07, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 6.726217716135352e-08, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 8.284833958871474e-07, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 0.6805093288421631, + "torch32": 0.6805091500282288, + "torch64": 0.6805093481763326 + }, + "float32_step_at_torch32_peak": 5.960464477539063e-08 + }, + "encoder0_class": { + "shape": [ + 1, + 1, + 64 + ], + "mirror_vs_torch32": { + "max_abs": 2.9802322387695312e-08, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 5.050876702994422e-09, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 2.969656957840794e-08, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 0.0663267970085144, + "torch32": 0.0663268119096756, + "torch64": 0.06632679340636188 + }, + "float32_step_at_torch32_peak": 7.450580596923828e-09 + }, + "encoder1_spatial": { + "shape": [ + 14, + 14, + 64 + ], + "mirror_vs_torch32": { + "max_abs": 8.344650268554688e-07, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 7.732215667743958e-08, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 8.644599920337726e-07, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 0.7032395601272583, + "torch32": 0.703239381313324, + "torch64": 0.7032395829041325 + }, + "float32_step_at_torch32_peak": 5.960464477539063e-08 + }, + "encoder1_class": { + "shape": [ + 1, + 1, + 64 + ], + "mirror_vs_torch32": { + "max_abs": 4.0978193283081055e-08, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 6.853144581334125e-09, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 4.2998411539652004e-08, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 0.10447852313518524, + "torch32": 0.10447851568460464, + "torch64": 0.10447852021159582 + }, + "float32_step_at_torch32_peak": 7.450580596923828e-09 + }, + "encoder2_spatial": { + "shape": [ + 14, + 14, + 64 + ], + "mirror_vs_torch32": { + "max_abs": 8.046627044677734e-07, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 8.892661340631491e-08, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 8.181142449048551e-07, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 0.7241514921188354, + "torch32": 0.7241513729095459, + "torch64": 0.7241515205509209 + }, + "float32_step_at_torch32_peak": 5.960464477539063e-08 + }, + "encoder2_class": { + "shape": [ + 1, + 1, + 64 + ], + "mirror_vs_torch32": { + "max_abs": 5.774199962615967e-08, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 1.06150434787608e-08, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 6.116703659894696e-08, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 0.12581756711006165, + "torch32": 0.12581753730773926, + "torch64": 0.12581756658608845 + }, + "float32_step_at_torch32_peak": 1.4901161193847656e-08 + }, + "encoder3_spatial": { + "shape": [ + 14, + 14, + 64 + ], + "mirror_vs_torch32": { + "max_abs": 8.046627044677734e-07, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 1.0564192287620955e-07, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 7.998490868521557e-07, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 0.7551923990249634, + "torch32": 0.7551922798156738, + "torch64": 0.7551923926571609 + }, + "float32_step_at_torch32_peak": 5.960464477539063e-08 + }, + "encoder3_class": { + "shape": [ + 1, + 1, + 64 + ], + "mirror_vs_torch32": { + "max_abs": 5.960464477539063e-08, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 1.3640545977466889e-08, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 5.819621733127445e-08, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 0.10957464575767517, + "torch32": 0.10957462340593338, + "torch64": 0.10957464424946718 + }, + "float32_step_at_torch32_peak": 7.450580596923828e-09 + }, + "readout0": { + "shape": [ + 14, + 14, + 64 + ], + "mirror_vs_torch32": { + "max_abs": 4.172325134277344e-07, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 2.8848477162668473e-08, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 4.152990219496999e-07, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 0.41242337226867676, + "torch32": 0.41242358088493347, + "torch64": 0.41242337939847856 + }, + "float32_step_at_torch32_peak": 2.9802322387695312e-08 + }, + "reassemble0": { + "shape": [ + 56, + 56, + 4 + ], + "mirror_vs_torch32": { + "max_abs": 1.043081283569336e-07, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 1.5384060775280872e-08, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 9.835273953595625e-08, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 0.2784201204776764, + "torch32": 0.278420090675354, + "torch64": 0.27842011364146685 + }, + "float32_step_at_torch32_peak": 2.9802322387695312e-08 + }, + "readout1": { + "shape": [ + 14, + 14, + 64 + ], + "mirror_vs_torch32": { + "max_abs": 3.8743019104003906e-07, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 3.412152843607075e-08, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 3.9134783719196875e-07, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 0.4157055914402008, + "torch32": 0.4157054126262665, + "torch64": 0.4157055754207586 + }, + "float32_step_at_torch32_peak": 2.9802322387695312e-08 + }, + "reassemble1": { + "shape": [ + 28, + 28, + 4 + ], + "mirror_vs_torch32": { + "max_abs": 1.6577541828155518e-07, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 2.034888679780522e-08, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 1.728670596598536e-07, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 0.33210742473602295, + "torch32": 0.33210745453834534, + "torch64": 0.332107421647195 + }, + "float32_step_at_torch32_peak": 2.9802322387695312e-08 + }, + "readout2": { + "shape": [ + 14, + 14, + 64 + ], + "mirror_vs_torch32": { + "max_abs": 3.427267074584961e-07, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 4.4144968791570705e-08, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 3.299882889717942e-07, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 0.404069185256958, + "torch32": 0.40406906604766846, + "torch64": 0.40406914837865826 + }, + "float32_step_at_torch32_peak": 2.9802322387695312e-08 + }, + "reassemble2": { + "shape": [ + 14, + 14, + 4 + ], + "mirror_vs_torch32": { + "max_abs": 3.8743019104003906e-07, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 4.364186684258087e-08, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 3.788613916130834e-07, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 0.4455973505973816, + "torch32": 0.44559720158576965, + "torch64": 0.44559735598293976 + }, + "float32_step_at_torch32_peak": 2.9802322387695312e-08 + }, + "readout3": { + "shape": [ + 14, + 14, + 64 + ], + "mirror_vs_torch32": { + "max_abs": 3.5762786865234375e-07, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 4.737591269288188e-08, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 3.6874777237239087e-07, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 0.43181976675987244, + "torch32": 0.43181976675987244, + "torch64": 0.43181973138258467 + }, + "float32_step_at_torch32_peak": 2.9802322387695312e-08 + }, + "reassemble3": { + "shape": [ + 7, + 7, + 4 + ], + "mirror_vs_torch32": { + "max_abs": 4.172325134277344e-07, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 5.397904434545353e-08, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 4.331514795730129e-07, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 0.43373528122901917, + "torch32": 0.4337356388568878, + "torch64": 0.43373527561745284 + }, + "float32_step_at_torch32_peak": 2.9802322387695312e-08 + }, + "fusion0": { + "shape": [ + 14, + 14, + 4 + ], + "mirror_vs_torch32": { + "max_abs": 1.0728836059570312e-05, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 1.6945987089123093e-06, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 1.0056275008496485e-05, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 5.971494197845459, + "torch32": 5.971497058868408, + "torch64": 5.971495074507277 + }, + "float32_step_at_torch32_peak": 4.76837158203125e-07 + }, + "fusion1": { + "shape": [ + 28, + 28, + 4 + ], + "mirror_vs_torch32": { + "max_abs": 2.014636993408203e-05, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 5.276630279604788e-06, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 1.9020816394155204e-05, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 12.412312507629395, + "torch32": 12.412311553955078, + "torch64": 12.412312201412261 + }, + "float32_step_at_torch32_peak": 9.5367431640625e-07 + }, + "fusion2": { + "shape": [ + 56, + 56, + 4 + ], + "mirror_vs_torch32": { + "max_abs": 4.6253204345703125e-05, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 1.6397687123692606e-05, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 4.837836182058908e-05, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 25.807279586791992, + "torch32": 25.807296752929688, + "torch64": 25.807289493481097 + }, + "float32_step_at_torch32_peak": 1.9073486328125e-06 + }, + "fusion3": { + "shape": [ + 112, + 112, + 4 + ], + "mirror_vs_torch32": { + "max_abs": 5.7697296142578125e-05, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 3.139735947632616e-05, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 6.617691321508801e-05, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 28.775066375732422, + "torch32": 28.775081634521484, + "torch64": 28.775075904699257 + }, + "float32_step_at_torch32_peak": 1.9073486328125e-06 + }, + "head": { + "shape": [ + 112, + 112, + 2 + ], + "mirror_vs_torch32": { + "max_abs": 7.599592208862305e-06, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 9.560554570825497e-06, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 9.556745507677267e-06, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 3.752713441848755, + "torch32": 3.752713680267334, + "torch64": 3.7527132879976395 + }, + "float32_step_at_torch32_peak": 2.384185791015625e-07 + }, + "logits": { + "shape": [ + 224, + 224, + 2 + ], + "mirror_vs_torch32": { + "max_abs": 7.286667823791504e-06, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 1.1002035396723286e-05, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 1.1007019686593011e-05, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 3.747929811477661, + "torch32": 3.7479302883148193, + "torch64": 3.747929561492697 + }, + "float32_step_at_torch32_peak": 2.384185791015625e-07 + } + } + } +} diff --git a/docs/evidence/dpt-integer-offline.json b/docs/evidence/dpt-integer-offline.json new file mode 100644 index 0000000..62dea24 --- /dev/null +++ b/docs/evidence/dpt-integer-offline.json @@ -0,0 +1,1198 @@ +{ + "kind": "dpt_integer_calibrated_offline_comparison", + "schema_version": 1, + "status": "passed", + "revision": "24e1b6f6c75359073563605f8bcac42d465b0df5", + "dirty": false, + "cloud_calls": 0, + "command": "PYTHONPATH=. python tools/vit_b16_dpt224_numerics.py --output docs/evidence/dpt-integer-offline.json", + "input_seed": 14127, + "weights": "_fixed_weights scale=128; fixed four-batch BN calibration; model.double()", + "input": "same float32 dyadic values converted exactly to double", + "fused_attention": false, + "versions": { + "python": "3.12.3", + "torch": "2.14.0+cpu", + "numpy": "2.5.3", + "timm": "1.0.30", + "segmentation-models-pytorch": "0.5.0", + "earthengine-api": "1.7.45" + }, + "claims": { + "absolute_tolerance": 0.0001, + "full": { + "final_float32_target_met": true, + "intermediate_float64_ordering_met": true + }, + "reduced": { + "final_float32_target_met": true, + "intermediate_float64_ordering_met": true + } + }, + "full": { + "config": { + "encoder_width": 768, + "heads": 12, + "depth": 12, + "indices": [ + 2, + 5, + 8, + 11 + ], + "intermediate": [ + 256, + 512, + 1024, + 1024 + ], + "fusion": 256 + }, + "parameters_sha256": "debb24dbcee2db932eabcbced80e00201f0153eaaf7eccc28c6c79f05d835925", + "float32_input_sha256": "316691251cb43ab2f326472fe4bc699039e8c644eee0069a18c82c10264ecba1", + "calibration": { + "batches": 4, + "batch_size": 2, + "seed": 14128, + "momentum": null, + "learned_parameters_unchanged": true + }, + "threads": 2, + "mkldnn": true, + "outputs": { + "encoder0_spatial": { + "shape": [ + 14, + 14, + 768 + ], + "mirror_vs_torch32": { + "max_abs": 0.000152587890625, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 2.4010997606183082e-05, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 0.0001451001998589163, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 158.72190856933594, + "torch32": 158.72186279296875, + "torch64": 158.72191527978327 + }, + "float32_step_at_torch32_peak": 1.52587890625e-05 + }, + "encoder0_class": { + "shape": [ + 1, + 1, + 768 + ], + "mirror_vs_torch32": { + "max_abs": 6.103515625e-05, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 7.259931734893144e-06, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 6.298228689161078e-05, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 154.84912109375, + "torch32": 154.84906005859375, + "torch64": 154.84911900249622 + }, + "float32_step_at_torch32_peak": 1.52587890625e-05 + }, + "encoder1_spatial": { + "shape": [ + 14, + 14, + 768 + ], + "mirror_vs_torch32": { + "max_abs": 0.0002346038818359375, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 5.2644289894487883e-05, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 0.00022998988924882724, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 301.84991455078125, + "torch32": 301.8498840332031, + "torch64": 301.84993117002887 + }, + "float32_step_at_torch32_peak": 3.0517578125e-05 + }, + "encoder1_class": { + "shape": [ + 1, + 1, + 768 + ], + "mirror_vs_torch32": { + "max_abs": 8.392333984375e-05, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 2.57985652183379e-05, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 9.477121608369998e-05, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 297.8437194824219, + "torch32": 297.8436584472656, + "torch64": 297.8437452809871 + }, + "float32_step_at_torch32_peak": 3.0517578125e-05 + }, + "encoder2_spatial": { + "shape": [ + 14, + 14, + 768 + ], + "mirror_vs_torch32": { + "max_abs": 0.0002574920654296875, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 7.410913326566515e-05, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 0.00025675631225396955, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 439.1181945800781, + "torch32": 439.1181335449219, + "torch64": 439.1182169051377 + }, + "float32_step_at_torch32_peak": 3.0517578125e-05 + }, + "encoder2_class": { + "shape": [ + 1, + 1, + 768 + ], + "mirror_vs_torch32": { + "max_abs": 0.000152587890625, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 3.860923072807054e-05, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 0.00018165493855804016, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 434.8233947753906, + "torch32": 434.8232421875, + "torch64": 434.82342384243856 + }, + "float32_step_at_torch32_peak": 3.0517578125e-05 + }, + "encoder3_spatial": { + "shape": [ + 14, + 14, + 768 + ], + "mirror_vs_torch32": { + "max_abs": 0.0003108978271484375, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 0.00011375931285328988, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 0.000305418731276319, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 574.6699829101562, + "torch32": 574.6699829101562, + "torch64": 574.6699868632594 + }, + "float32_step_at_torch32_peak": 6.103515625e-05 + }, + "encoder3_class": { + "shape": [ + 1, + 1, + 768 + ], + "mirror_vs_torch32": { + "max_abs": 0.000152587890625, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 6.903567083327289e-05, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 0.00016613319911584767, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 570.2060546875, + "torch32": 570.2059326171875, + "torch64": 570.2060821488692 + }, + "float32_step_at_torch32_peak": 6.103515625e-05 + }, + "readout0": { + "shape": [ + 14, + 14, + 768 + ], + "mirror_vs_torch32": { + "max_abs": 0.001220703125, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 0.00023468612369015318, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 0.0013082357881444295, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 1012.5093383789062, + "torch32": 1012.5093383789062, + "torch64": 1012.5093208996113 + }, + "float32_step_at_torch32_peak": 6.103515625e-05 + }, + "reassemble0": { + "shape": [ + 56, + 56, + 256 + ], + "mirror_vs_torch32": { + "max_abs": 0.2890625, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 0.025412192997464444, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 0.297428582853172, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 77344.5625, + "torch32": 77344.5703125, + "torch64": 77344.57692528704 + }, + "float32_step_at_torch32_peak": 0.0078125 + }, + "readout1": { + "shape": [ + 14, + 14, + 768 + ], + "mirror_vs_torch32": { + "max_abs": 0.00244140625, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 0.00042419152964612294, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 0.0026658409024094, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 1800.771484375, + "torch32": 1800.7725830078125, + "torch64": 1800.7715640634435 + }, + "float32_step_at_torch32_peak": 0.0001220703125 + }, + "reassemble1": { + "shape": [ + 28, + 28, + 256 + ], + "mirror_vs_torch32": { + "max_abs": 1.875, + "argmax_flips": 1 + }, + "mirror_vs_torch64": { + "max_abs": 0.14560377232555766, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 1.8859133009100333, + "argmax_flips": 1 + }, + "max_activation": { + "mirror": 299499.75, + "torch32": 299499.4375, + "torch64": 299499.7416819937 + }, + "float32_step_at_torch32_peak": 0.03125 + }, + "readout2": { + "shape": [ + 14, + 14, + 768 + ], + "mirror_vs_torch32": { + "max_abs": 0.002685546875, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 0.0006647692598562571, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 0.002562160016168491, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 2585.812744140625, + "torch32": 2585.813232421875, + "torch64": 2585.812862023744 + }, + "float32_step_at_torch32_peak": 0.000244140625 + }, + "reassemble2": { + "shape": [ + 14, + 14, + 256 + ], + "mirror_vs_torch32": { + "max_abs": 0.9921875, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 0.05277853841835167, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 0.9850988785328809, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 133935.0, + "torch32": 133935.921875, + "torch64": 133935.0158239248 + }, + "float32_step_at_torch32_peak": 0.015625 + }, + "readout3": { + "shape": [ + 14, + 14, + 768 + ], + "mirror_vs_torch32": { + "max_abs": 0.004150390625, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 0.001027094130677142, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 0.004363484917575988, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 3376.564453125, + "torch32": 3376.565185546875, + "torch64": 3376.5645358564984 + }, + "float32_step_at_torch32_peak": 0.000244140625 + }, + "reassemble3": { + "shape": [ + 7, + 7, + 256 + ], + "mirror_vs_torch32": { + "max_abs": 38.5, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 2.9852010796312243, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 37.391804572660476, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 4055164.75, + "torch32": 4055166.0, + "torch64": 4055163.850523753 + }, + "float32_step_at_torch32_peak": 0.25 + }, + "fusion0": { + "shape": [ + 14, + 14, + 256 + ], + "mirror_vs_torch32": { + "max_abs": 62.75, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 3.887746782740578, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 64.10711715184152, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 7842976.5, + "torch32": 7843002.0, + "torch64": 7842976.515599417 + }, + "float32_step_at_torch32_peak": 0.5 + }, + "fusion1": { + "shape": [ + 28, + 28, + 256 + ], + "mirror_vs_torch32": { + "max_abs": 163.5, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 13.681627091020346, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 168.5656980238855, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 56391732.0, + "torch32": 56391820.0, + "torch64": 56391732.14789495 + }, + "float32_step_at_torch32_peak": 4.0 + }, + "fusion2": { + "shape": [ + 56, + 56, + 256 + ], + "mirror_vs_torch32": { + "max_abs": 332.0, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 26.96422354876995, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 345.95045026391745, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 91074808.0, + "torch32": 91074768.0, + "torch64": 91074805.64672688 + }, + "float32_step_at_torch32_peak": 8.0 + }, + "fusion3": { + "shape": [ + 112, + 112, + 256 + ], + "mirror_vs_torch32": { + "max_abs": 1000.0, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 105.84820801019669, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 1024.995563685894, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 381308864.0, + "torch32": 381309472.0, + "torch64": 381308861.7113644 + }, + "float32_step_at_torch32_peak": 32.0 + }, + "head": { + "shape": [ + 112, + 112, + 2 + ], + "mirror_vs_torch32": { + "max_abs": 8.821487426757812e-06, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 6.077350063193876e-07, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 9.138037014078115e-06, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 1.1129032373428345, + "torch32": 1.1129045486450195, + "torch64": 1.1129031248679662 + }, + "float32_step_at_torch32_peak": 1.1920928955078125e-07 + }, + "logits": { + "shape": [ + 224, + 224, + 2 + ], + "mirror_vs_torch32": { + "max_abs": 8.687376976013184e-06, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 8.491934220811181e-07, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 9.010653808871893e-06, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 1.1128331422805786, + "torch32": 1.1128332614898682, + "torch64": 1.1128330763556515 + }, + "float32_step_at_torch32_peak": 1.1920928955078125e-07 + } + } + }, + "reduced": { + "config": { + "encoder_width": 64, + "heads": 1, + "depth": 4, + "indices": [ + 0, + 1, + 2, + 3 + ], + "intermediate": [ + 4, + 8, + 16, + 16 + ], + "fusion": 4 + }, + "parameters_sha256": "2a1d2e043d372463ce0a57c7f1cac05dd336fb7dd1f2c02d6d1a69dbc0525915", + "float32_input_sha256": "316691251cb43ab2f326472fe4bc699039e8c644eee0069a18c82c10264ecba1", + "calibration": { + "batches": 4, + "batch_size": 2, + "seed": 14128, + "momentum": null, + "learned_parameters_unchanged": true + }, + "threads": 2, + "mkldnn": true, + "outputs": { + "encoder0_spatial": { + "shape": [ + 14, + 14, + 64 + ], + "mirror_vs_torch32": { + "max_abs": 2.9802322387695312e-06, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 2.6730389368623264e-07, + "argmax_flips": 1 + }, + "torch32_vs_torch64": { + "max_abs": 3.0281002332266382e-06, + "argmax_flips": 1 + }, + "max_activation": { + "mirror": 3.504568576812744, + "torch32": 3.5045690536499023, + "torch64": 3.504568583566427 + }, + "float32_step_at_torch32_peak": 2.384185791015625e-07 + }, + "encoder0_class": { + "shape": [ + 1, + 1, + 64 + ], + "mirror_vs_torch32": { + "max_abs": 4.76837158203125e-07, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 6.128856178122533e-08, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 5.038132542267704e-07, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 1.3242733478546143, + "torch32": 1.3242731094360352, + "torch64": 1.3242732868656744 + }, + "float32_step_at_torch32_peak": 1.1920928955078125e-07 + }, + "encoder1_spatial": { + "shape": [ + 14, + 14, + 64 + ], + "mirror_vs_torch32": { + "max_abs": 2.7418136596679688e-06, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 4.283289882778263e-07, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 2.9582028133745553e-06, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 4.1484832763671875, + "torch32": 4.148484230041504, + "torch64": 4.148483539743498 + }, + "float32_step_at_torch32_peak": 4.76837158203125e-07 + }, + "encoder1_class": { + "shape": [ + 1, + 1, + 64 + ], + "mirror_vs_torch32": { + "max_abs": 7.152557373046875e-07, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 1.6377225531272188e-07, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 7.198156448673387e-07, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 2.4008328914642334, + "torch32": 2.4008328914642334, + "torch64": 2.400832880311533 + }, + "float32_step_at_torch32_peak": 2.384185791015625e-07 + }, + "encoder2_spatial": { + "shape": [ + 14, + 14, + 64 + ], + "mirror_vs_torch32": { + "max_abs": 2.6226043701171875e-06, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 6.614442673580356e-07, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 2.8119562478501336e-06, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 5.1248459815979, + "torch32": 5.124845504760742, + "torch64": 5.124845931342235 + }, + "float32_step_at_torch32_peak": 4.76837158203125e-07 + }, + "encoder2_class": { + "shape": [ + 1, + 1, + 64 + ], + "mirror_vs_torch32": { + "max_abs": 7.152557373046875e-07, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 1.7313074218705538e-07, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 7.268974555607599e-07, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 3.4704294204711914, + "torch32": 3.4704291820526123, + "torch64": 3.4704294997895495 + }, + "float32_step_at_torch32_peak": 2.384185791015625e-07 + }, + "encoder3_spatial": { + "shape": [ + 14, + 14, + 64 + ], + "mirror_vs_torch32": { + "max_abs": 2.6226043701171875e-06, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 8.701439941916078e-07, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 2.8243612990586087e-06, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 6.205527305603027, + "torch32": 6.205526828765869, + "torch64": 6.205527561291822 + }, + "float32_step_at_torch32_peak": 4.76837158203125e-07 + }, + "encoder3_class": { + "shape": [ + 1, + 1, + 64 + ], + "mirror_vs_torch32": { + "max_abs": 7.152557373046875e-07, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 3.476684824477161e-07, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 7.634661702837775e-07, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 4.536314010620117, + "torch32": 4.536313533782959, + "torch64": 4.536314297249129 + }, + "float32_step_at_torch32_peak": 4.76837158203125e-07 + }, + "readout0": { + "shape": [ + 14, + 14, + 64 + ], + "mirror_vs_torch32": { + "max_abs": 1.9073486328125e-06, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 2.8704669041701436e-07, + "argmax_flips": 34 + }, + "torch32_vs_torch64": { + "max_abs": 2.0004741938528525e-06, + "argmax_flips": 34 + }, + "max_activation": { + "mirror": 2.89762020111084, + "torch32": 2.897618293762207, + "torch64": 2.897620294236401 + }, + "float32_step_at_torch32_peak": 2.384185791015625e-07 + }, + "reassemble0": { + "shape": [ + 56, + 56, + 4 + ], + "mirror_vs_torch32": { + "max_abs": 4.0978193283081055e-08, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 7.650325220542875e-09, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 4.2408598140142306e-08, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 0.07384451478719711, + "torch32": 0.07384450733661652, + "torch64": 0.0738445173401548 + }, + "float32_step_at_torch32_peak": 7.450580596923828e-09 + }, + "readout1": { + "shape": [ + 14, + 14, + 64 + ], + "mirror_vs_torch32": { + "max_abs": 1.9073486328125e-06, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 3.1191050453571734e-07, + "argmax_flips": 4 + }, + "torch32_vs_torch64": { + "max_abs": 1.959173944854342e-06, + "argmax_flips": 4 + }, + "max_activation": { + "mirror": 3.9228179454803467, + "torch32": 3.922818660736084, + "torch64": 3.9228180701944226 + }, + "float32_step_at_torch32_peak": 2.384185791015625e-07 + }, + "reassemble1": { + "shape": [ + 28, + 28, + 4 + ], + "mirror_vs_torch32": { + "max_abs": 7.450580596923828e-08, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 1.984266087551312e-08, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 7.183071686067688e-08, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 0.19980935752391815, + "torch32": 0.19980935752391815, + "torch64": 0.19980936263310856 + }, + "float32_step_at_torch32_peak": 1.4901161193847656e-08 + }, + "readout2": { + "shape": [ + 14, + 14, + 64 + ], + "mirror_vs_torch32": { + "max_abs": 2.1457672119140625e-06, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 5.292213582919203e-07, + "argmax_flips": 54 + }, + "torch32_vs_torch64": { + "max_abs": 2.1671182066640426e-06, + "argmax_flips": 54 + }, + "max_activation": { + "mirror": 4.910372257232666, + "torch32": 4.910371780395508, + "torch64": 4.91037261676637 + }, + "float32_step_at_torch32_peak": 4.76837158203125e-07 + }, + "reassemble2": { + "shape": [ + 14, + 14, + 4 + ], + "mirror_vs_torch32": { + "max_abs": 7.152557373046875e-07, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 1.781758302010772e-07, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 6.361800259924166e-07, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 0.790048360824585, + "torch32": 0.7900485992431641, + "torch64": 0.7900482362698189 + }, + "float32_step_at_torch32_peak": 5.960464477539063e-08 + }, + "readout3": { + "shape": [ + 14, + 14, + 64 + ], + "mirror_vs_torch32": { + "max_abs": 2.86102294921875e-06, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 4.653547294175553e-07, + "argmax_flips": 15 + }, + "torch32_vs_torch64": { + "max_abs": 2.8200226234176284e-06, + "argmax_flips": 15 + }, + "max_activation": { + "mirror": 5.87363338470459, + "torch32": 5.87363338470459, + "torch64": 5.873633650828738 + }, + "float32_step_at_torch32_peak": 4.76837158203125e-07 + }, + "reassemble3": { + "shape": [ + 7, + 7, + 4 + ], + "mirror_vs_torch32": { + "max_abs": 7.748603820800781e-07, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 2.3129550971723312e-07, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 7.428681553234284e-07, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 0.7762544751167297, + "torch32": 0.7762541174888611, + "torch64": 0.7762544063839956 + }, + "float32_step_at_torch32_peak": 5.960464477539063e-08 + }, + "fusion0": { + "shape": [ + 14, + 14, + 4 + ], + "mirror_vs_torch32": { + "max_abs": 1.0058283805847168e-07, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 4.438052279842619e-08, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 1.01028019922067e-07, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 0.2191830277442932, + "torch32": 0.21918301284313202, + "torch64": 0.21918300633620472 + }, + "float32_step_at_torch32_peak": 1.4901161193847656e-08 + }, + "fusion1": { + "shape": [ + 28, + 28, + 4 + ], + "mirror_vs_torch32": { + "max_abs": 9.685754776000977e-08, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 6.962473365901278e-08, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 1.206323982233526e-07, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 0.20095686614513397, + "torch32": 0.20095685124397278, + "torch64": 0.20095685866773028 + }, + "float32_step_at_torch32_peak": 1.4901161193847656e-08 + }, + "fusion2": { + "shape": [ + 56, + 56, + 4 + ], + "mirror_vs_torch32": { + "max_abs": 2.9802322387695312e-08, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 1.4075567170146464e-07, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 1.4075567170146464e-07, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 0.15290512144565582, + "torch32": 0.15290510654449463, + "torch64": 0.15290511149322855 + }, + "float32_step_at_torch32_peak": 1.4901161193847656e-08 + }, + "fusion3": { + "shape": [ + 112, + 112, + 4 + ], + "mirror_vs_torch32": { + "max_abs": 5.4016709327697754e-08, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 1.9851337200449404e-07, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 2.041013074521869e-07, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 0.12447721511125565, + "torch32": 0.12447721511125565, + "torch64": 0.12447721420512539 + }, + "float32_step_at_torch32_peak": 7.450580596923828e-09 + }, + "head": { + "shape": [ + 112, + 112, + 2 + ], + "mirror_vs_torch32": { + "max_abs": 2.9802322387695312e-08, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 8.581878643137975e-08, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 8.209349613291783e-08, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 0.09633176028728485, + "torch32": 0.09633176028728485, + "torch64": 0.09633175940576372 + }, + "float32_step_at_torch32_peak": 7.450580596923828e-09 + }, + "logits": { + "shape": [ + 224, + 224, + 2 + ], + "mirror_vs_torch32": { + "max_abs": 2.2351741790771484e-08, + "argmax_flips": 0 + }, + "mirror_vs_torch64": { + "max_abs": 1.3657800756322613e-07, + "argmax_flips": 0 + }, + "torch32_vs_torch64": { + "max_abs": 1.361619831885541e-07, + "argmax_flips": 0 + }, + "max_activation": { + "mirror": 0.09631066769361496, + "torch32": 0.09631066769361496, + "torch64": 0.09631066594179269 + }, + "float32_step_at_torch32_peak": 7.450580596923828e-09 + } + } + } +} diff --git a/docs/model.md b/docs/model.md index 6e1f969..2d87f9d 100644 --- a/docs/model.md +++ b/docs/model.md @@ -210,10 +210,16 @@ The [reduced DPT live record](evidence/live-fixtures/20261103T041356Z-vit_dpt_re passed 7 requests, matching the mirror bit for bit at all ten readouts, with largest absolute EE-versus-PyTorch error 1.86e-9. This covers only the structured rank-at-most-4 reduced twin and its sampled head/logit readouts, not unrestricted -weights. The reduced twin meets the unchanged 1e-4 absolute target. The offline -NumPy mirror at full width misses that target against both float32 and float64 -PyTorch, with 0 argmax flips; float32 PyTorch itself differs from float64 by more -([numerics and dtype record](vit-b16-dpt224.md#numerical-scope)). Its absolute -check remains a strict expected failure, with a separate float64 ordering guard. +weights. Separate full-width and reduced offline references use counter-based +integer-hash weights at native initializer scales with fixed BatchNorm calibration. +Head/logits meet 1e-4 against float32 PyTorch (full-width 2.06e-5/2.01e-5, +reduced 7.60e-6/7.29e-6), with zero argmax flips. Every intermediate meets the +float64 ordering rule: mirror error no larger than float32 PyTorch's own. +Full-width fusion3 peaks at 51.93: mirror/float64 error 4.64e-5 versus +float32/float64 error 1.87e-4; its mirror/float32 error is 1.88e-4, so 1e-4 +intermediate agreement against float32 is not claimed. The final reference +has no strict expected failure. The native-init and two periodic-pattern +records remain unchanged as superseded history +([numerics and records](vit-b16-dpt224.md#numerical-scope)). Full-width live agreement has not been established: the staged runner is a follow-up. Random weights establish no model accuracy. diff --git a/docs/vit-b16-dpt224.md b/docs/vit-b16-dpt224.md index 1e8a94e..c248344 100644 --- a/docs/vit-b16-dpt224.md +++ b/docs/vit-b16-dpt224.md @@ -63,56 +63,142 @@ The [preservation record](evidence/dpt-prithvi-preservation.json) compares 68 Prithvi graphs before/after the change: 33 full-width forward boundaries, 33 full-width staged boundaries and two existing reduced-fixture requests. +## Fixed integer reference procedure + +The final full-width and reduced numerical references overwrite every learned +SMP/timm parameter using a counter-based integer hash, with no library RNG values +retained. The generator and scales are fixed before comparison. + +For a parameter's full `state_dict` name, the key is +`uint64(zlib.crc32(name.encode("utf-8")))` (zero-extended from 32 bits). For flat +index `i`, start at `key+(i+1)*0x9E3779B97F4A7C15`, then apply SplitMix64's +xor-shift/multiply finalizer (`>>30`, multiplier `0xBF58476D1CE4E5B9`; `>>27`, +multiplier `0x94D049BB133111EB`; final xor `>>31`). All arithmetic wraps modulo +`2**64` in NumPy uint64. Take its top 24 bits `u`; the value +`d=(u+0.5)/2**23-1` lies in `(-1,1)` and is exactly representable in float32. +Compute `d*sqrt(3)*std_native` in float64, then cast once to float32. +This matches the source initializer's standard deviation, with uniform dyadics +rather than Gaussian samples where the native initializer is Gaussian. +Constant native initializers stay constants. Every tensor is built twice and +asserted bit-identical; five independently derived name/index/hash answers +are hard-coded in the generator and asserted before initialization. + +The scales below were read from the pinned installed sources before declaration: +`timm/models/vision_transformer.py` (`VisionTransformer.init_weights`, +`init_weights_vit_timm`), `timm/layers/patch_embed.py`, SMP's `base/model.py` +and `base/initialization.py`, and torch's `_ConvNd.reset_parameters`, norm +`reset_parameters`, and `nn.init` fan calculations. The record names each +parameter, native initializer and source, standard deviation, fan-in, shape, +and generator key. No observed tensor RMS or comparison error sets a scale. + +| Parameters | Native initializer | Declared standard deviation | +|---|---|---| +| Encoder Linear weights, including unused classifier | timm 1.0.30 truncated normal | .02 | +| Position embedding | timm 1.0.30 truncated normal | .02 | +| Class token | timm 1.0.30 normal | 1e-6 | +| Encoder patch Conv2d weight and bias | torch 2.14 defaults | `sqrt(1/(3*fan_in))` | +| Decoder Conv2d weights | SMP 0.5.0 Kaiming uniform, ReLU, fan-in | `sqrt(2/fan_in)` | +| Decoder Linear weights | SMP 0.5.0 Xavier uniform | `sqrt(2/(fan_in+fan_out))` | +| Decoder ConvTranspose2d weight and bias | torch 2.14 defaults, untouched by SMP | `sqrt(1/(3*initializer_fan_in))` | +| Head Conv2d weights | SMP 0.5.0 Xavier uniform | `sqrt(2/(fan_in+fan_out))` | +| Norm affine / other biases | Native constants | weights 1; biases 0 | + +Linear fan-in/out are its input/output widths. Conv2d uses +`fan_in=(Cin/groups)*kh*kw`, `fan_out=Cout*kh*kw`. For ConvTranspose2d, +torch's stored `[Cin,Cout,k,k]` gives `initializer_fan_in=Cout*kh*kw`; +the record distinguishes that initializer convention from `fan_in=Cin`, the +actual sum at each non-overlapping output. Torch's default convolution bias is +random uniform, so patch/transpose biases also use the hash at that std. + +The two periodic-pattern records stay unchanged as history: +[unscaled](evidence/dpt-integer-offline.json), declared at `24e1b6f`, and +[fan-in-scaled](evidence/dpt-fan-in-offline.json), preserved at `ce619d9`. +The `_fixed_weights` pattern `((17*i+3)%31-15)/128` repeats every 31 values; +its matrices have rank at most 30. Diagnostic measurements on 768×768, +3072×768 and 256×2304 matrices found top singular values 5–10 times those of +random weights at the same RMS. This coherent structure made the full-width +activations snowball: fusion 3 reached 3.8e8 unscaled and 2.99e6 after fan-in +scaling. It is unsuitable for these model numerical references. `_fixed_weights` +itself remains unchanged for graph-gate fixtures. Native-init evidence also +remains unchanged. The hash recipe's calibration and evaluation inputs are +unchanged from `24e1b6f`. + +BatchNorm running statistics are reset and calibrated once, using four batches of two six-band +224 × 224 inputs generated by `dyadic(14128, "bn-calibration-{batch}", +(2,224,224,6), scale=.5, bits=16)`, for batch indices 0 through 3. +The model runs in training mode only for this pass, under `torch.no_grad()`, +with BatchNorm `momentum=None` (cumulative averaging), then returns to evaluation +mode and restores momentum. Learned parameters are checked unchanged; only +running statistics and batch counters change. Head dropout follows all BatchNorms. +Evaluation uses the separate `dyadic(14127, "random-weight-input", (224,224,6), +scale=.5, bits=16)` input. The procedure is fixed before comparisons and is not +adjusted in response to results. + +The comparison uses the exact calibrated float32 state and input, then +`model.double()` and the same input converted exactly to double. Head and logits +require largest absolute error at most 1e-4 against float32 PyTorch. For every +intermediate output, mirror error against float64 PyTorch must be no larger +than float32 PyTorch's own error. Records include per-output peaks, float32 +spacing, all three absolute errors and argmax flips. This is offline mirror +agreement only; it establishes neither live agreement nor model accuracy. +The compact live fixture below keeps its original weights and seven pinned hashes. +The reduced inline converter gate uses native SMP literals on both sides; it +checks serialization identity, independently of these numerical references. + ## Numerical scope The independent SMP reference hooks its actual forward outputs: encoder pairs, readouts, reassembled features, fusion outputs, head and final logits. The NumPy -mirror uses the library's established rounding hypotheses. Tests compare every -pixel at reduced and full width under the unchanged absolute 1e-4 target and -report the largest absolute error per output and final-logit argmax flips. -Those checks are offline agreement, not Earth Engine execution or model accuracy. -The reduced native-SMP random-weight comparison passes: largest absolute error -4.291534423828125e-6 (fusion 3), final logits 2.6226043701171875e-6 and zero -argmax flips. The full-width result below remains a failure. - -The full-width check **does not meet** the unchanged 1e-4 absolute target. With SMP's native -random initialization (seed 14126), the largest error is 0.00060272216796875 -at fusion 3; final logits differ by 0.0003509521484375 with zero argmax flips. -The native seed, weights and input are unchanged; the tool-generated dtype -record below retains this measured failure. -The maintainer accepted this case as `pytest.mark.xfail(strict=True)`: -the 1e-4 assertion stays in place and an unexpected pass fails the test suite. -No full-width 1e-4 equivalence is claimed. - -The [dtype comparison record](evidence/dpt-dtype-offline.json) is generated by -`tools/vit_b16_dpt224_numerics.py` on a clean commit. SMP runs first in float32, -then as `model.double()` with exactly the same float32 weights and input converted -to double. It records all 22 outputs at each size, three absolute comparisons, -activation maxima, float32 spacing and argmax flips. At full width: - -| Comparison | Largest absolute error | Output | -|---|---:|---| -| Mirror vs float32 PyTorch | 0.00060272216796875 | Fusion 3 | -| Mirror vs float64 PyTorch | 0.00014951722456757466 | Logits | -| Float32 vs float64 PyTorch | 0.0006128716224225172 | Fusion 3 | - -Final-logit errors in that same order are 0.0003509521484375, -0.00014951722456757466 and 0.0003701043979305041, with zero argmax flips. -At full width, the mirror also **does not meet 1e-4 against float64 PyTorch**: -logits differ by 0.00014951722456757466 (about 1.50e-4), and fusion 3 by -0.00011782084319733599 (about 1.18e-4). It remains closer to float64 PyTorch -than float32 PyTorch is at every full-width output. -Float32 decoder activations reach 190.1188201904297; float32 spacing there is -1.52587890625e-5. Accumulated float32 rounding at these magnitudes exceeds the -absolute target. A separate passing test asserts that ordering for all 22 -outputs. This assertion supplements the retained -absolute-error check; it is not a relative-error substitute or a 1e-4 claim. - -The ordering is asserted at full width only. Reduced-twin float64 numbers are -recorded without that claim: at fusion 1 the mirror/float64 error is about -1.536e-6 versus float32/float64's 1.449e-6, and at fusion 2 about 3.504e-6 versus -3.364e-6. Those errors are far below 1e-4; the reduced twin's assertion remains -its absolute comparison against float32 PyTorch. +mirror uses the library's established rounding hypotheses. The final +[hash-reference record](evidence/dpt-hash-offline.json), generated once on clean +declaration commit `6197082`, contains all 22 outputs at each width and every +parameter's native-scale initialization rule. Both widths passed the +[numerical comparison rules](../CONTRIBUTING.md#numerical-comparisons): head +and logits meet 1e-4 against float32 PyTorch, and all 20 intermediates have +mirror/float64 error no larger than float32 PyTorch's own. There is no expected +failure for this final reference. No weights, inputs or calibration were +adjusted after comparison. Every output at both widths has zero argmax flips in all three comparisons. + +| Reference | Head error vs float32 | Logit error vs float32 | Head error vs float64 | Logit error vs float64 | +|---|---:|---:|---:|---:| +| Full width | 2.059340476989746e-5 | 2.0056962966918945e-5 | 4.209816711675529e-6 | 5.705644484210737e-6 | +| Reduced | 7.599592208862305e-6 | 7.286667823791504e-6 | 9.560554570825497e-6 | 1.1002035396723286e-5 | + +At full width, the largest mirror/float32 error is 0.00018787384033203125 +at fusion 3 (fusion 2 also exceeds 1e-4). These intermediate outputs are checked +against float64, not held to a 1e-4 float32 target. Fusion 3's mirror/float64 +error is 4.644907568440715e-5 versus float32/float64 error +0.00018706553028202677; it is the largest mirror/float64 error in the model. +Its float32 peak is 51.930015563964844 with step 3.814697265625e-6. +Head/logit peaks are 3.6273183822631836/3.608076572418213. + +At reduced width, fusion 3 has the largest mirror/float32 error, +5.7697296142578125e-5, and mirror/float64 error, 3.139735947632616e-5, +versus float32/float64 error 6.617691321508801e-5. Its float32 peak is +28.775081634521484 with step 1.9073486328125e-6. Head/logit peaks are +3.752713680267334/3.7479302883148193. The record retains peaks, float32 +steps, three absolute errors and argmax flips for every output. + +The earlier evidence remains unchanged as history: + +- [Native-init dtype record](evidence/dpt-dtype-offline.json): full-width + mirror/float32 error 0.00060272216796875 at fusion 3 and + 0.0003509521484375 at logits; activations reached 190.1188201904297. +- [Unscaled periodic-pattern record](evidence/dpt-integer-offline.json), + declared at `24e1b6f`: head/logits met 1e-4, but fusion 3 reached + 381,309,472 (step 32), with mirror/float32 error 1000 and + mirror/float64 error 105.84820801019669. This unrealistic activation + regime caused the procedure to be superseded. +- [Fan-in-scaled periodic-pattern record](evidence/dpt-fan-in-offline.json), + preserved at `ce619d9`: full-width head/logit errors + 0.0005536079406738281/0.0005426406860351562 against float32, with + mirror/float64 errors 0.00010378112662046135/0.00010239660514788085. + Fusion 3 still reached 2,992,211.5. That run stopped before reduced width. + +The final hash recipe addresses the periodic matrices' coherent low-rank +structure described above. Offline mirror agreement establishes neither Earth +Engine execution nor model accuracy. Graph identity and the unchanged compact +reduced live evidence remain separate. The reduced twin retains 224/16 geometry, four raw feature pairs and 64-dimensional heads, with encoder width 64, one head and four blocks; intermediate widths @@ -137,7 +223,7 @@ generated on clean `2d702c9`, passes all ten readouts. Its largest absolute mirror-versus-PyTorch error is 1.862645149230957e-9 (fusion 3); head and logits are each 9.313225746154785e-10. Its seven-request plan has a largest payload of 1,944,662 bytes and at most 31,360 output values per request, with no assets -or tasks. This is separate evidence from the native-SMP random-weight check. +or tasks. This is separate evidence from the calibrated integer-reference check. The [reduced G3-live run](evidence/live-fixtures/20261103T041356Z-vit_dpt_reduced.json) passed exactly those seven requests on clean `24fdec8`, with zero assets and @@ -158,11 +244,12 @@ the live record itself remains exactly as the harness wrote it. PYTHONPATH=. python tools/vit_b16_dpt224_plan.py PYTHONPATH=. python tools/live_fixtures.py --plan vit_dpt_reduced PYTHONPATH=. flock /tmp/tensor-ee-heavy.lock python tools/vit_b16_dpt224_numerics.py \ - --output docs/evidence/dpt-dtype-offline.json + --output docs/evidence/dpt-hash-offline.json ``` -The numerical command above produced the committed record. To reproduce it, -choose a fresh output path: the tool refuses to overwrite earlier evidence. +The numerical command writes the hash-initialized reference record. The tool +refuses to overwrite earlier evidence; the fixed procedure is not retuned or +rerun to obtain a passing result. The planning command measures actual serialized export payloads against offline EE signatures. It uses synthetic table reads, one per parameter; these create no diff --git a/tests/reference/vit_b16_dpt224/diagnostics.py b/tests/reference/vit_b16_dpt224/diagnostics.py index 036140e..bda88dd 100644 --- a/tests/reference/vit_b16_dpt224/diagnostics.py +++ b/tests/reference/vit_b16_dpt224/diagnostics.py @@ -1,4 +1,4 @@ -"""Native SMP random-state comparisons at float32 and float64; no cloud calls. +"""Hash-initialized calibrated SMP comparisons at float32 and float64; no cloud calls. The float64 model receives the exact float32 state and input, converted to double. All errors are absolute, and every output retains its activation and decision data. @@ -10,10 +10,10 @@ import numpy as np -from .reference import mirror, smp_model, state_of, torch_outputs +from .reference import (CALIBRATION_BATCHES, CALIBRATION_BATCH_SIZE, CALIBRATION_SEED, + EVALUATION_SEED, calibrated_model, mirror, state_of, torch_outputs) -SEED = 14126 -INPUT_SEED = 14127 +INPUT_SEED = EVALUATION_SEED def _leaves(outputs): @@ -34,16 +34,15 @@ def _comparison(left, right): } -def native_comparison(config): - """Measure both references and the mirror once, without changing initialization.""" +def integer_comparison(config): + """Measure both references and the mirror after the fixed calibration pass.""" import torch from tensor_ee.models.vit_b16_dpt224.configuration import parameter_shapes from tensor_ee.models.vit_b16_dpt224.model import validate_parameters from tools.fixtures.core import dyadic torch.set_num_threads(2) - torch.manual_seed(SEED) - model = smp_model(config) + model = calibrated_model(config) assert tuple(model.encoder._output_indices) == config.indices state = state_of(model) assert {name: value.shape for name, value in state.items()} == parameter_shapes(config) @@ -82,8 +81,16 @@ def native_comparison(config): "config": {"encoder_width": config.encoder.width, "heads": config.encoder.heads, "depth": config.encoder.depth, "indices": list(config.indices), "intermediate": list(config.intermediate), "fusion": config.fusion}, + "generator": {"algorithm": "SplitMix64", "key": "crc32(state_dict_name UTF-8), zero-extended to uint64", + "counter": "flat_index+1", "top_bits": 24, + "dyadic": "(u+0.5)/2^23-1", "scale": "sqrt(3)*std_native in float64; one float32 cast", + "known_answers_asserted": True}, + "initialization": model._integer_reference_recipe, "parameters_sha256": digest.hexdigest(), "float32_input_sha256": hashlib.sha256(image.tobytes()).hexdigest(), + "calibration": {"batches": CALIBRATION_BATCHES, "batch_size": CALIBRATION_BATCH_SIZE, + "seed": CALIBRATION_SEED, "momentum": None, + "learned_parameters_unchanged": True}, "threads": torch.get_num_threads(), "mkldnn": torch.backends.mkldnn.enabled, "outputs": outputs, } diff --git a/tests/reference/vit_b16_dpt224/initialization.py b/tests/reference/vit_b16_dpt224/initialization.py new file mode 100644 index 0000000..d67ddf1 --- /dev/null +++ b/tests/reference/vit_b16_dpt224/initialization.py @@ -0,0 +1,143 @@ +"""Final model-reference design: named SplitMix64 counters, native initializer scales. + +This changes numerical references only, never _fixed_weights or gate fixtures. +Sources read before declaring this recipe: +* timm 1.0.30 models/vision_transformer.py: VisionTransformer.init_weights and + init_weights_vit_timm; layers/patch_embed.py leaves Conv2d at torch defaults. +* SMP 0.5.0 base/model.py:initialize and base/initialization.py: decoder Conv2d + Kaiming/ReLU, decoder Linear Xavier, head Conv2d Xavier; transpose convs untouched. +* torch 2.14 nn/modules/conv.py:_ConvNd.reset_parameters, normalization.py and + batchnorm.py: constant norm affine; nn/init.py:_calculate_fan_in_and_fan_out. + +key = uint64(crc32(name.encode('utf-8'))), zero-extended from 32 bits. +For flat index i, mix key + (i+1)*0x9E3779B97F4A7C15 with SplitMix64's +xor-shift/multiply finalizer, wrapping modulo 2**64 at every operation. +Take top 24 bits u; d=(u+0.5)/2**23-1 is an exact float32 dyadic in (-1,1). +Compute d*sqrt(3)*std_native in float64, then cast once to float32. +Constants stay constants. This matches native standard deviations, not native +Gaussian distribution shapes, sampled states, or trained model accuracy. +""" +from __future__ import annotations + +import math +import zlib + +import numpy as np + + +KNOWN_HASHES = ( + ("encoder.model.cls_token", 0, 0xCD87E5C0B58DE326), + ("encoder.model.pos_embed", 104729, 0x13A2A11C9196E8E0), + ("encoder.model.blocks.0.attn.qkv.weight", 17, 0x17FAA7E86949FDCB), + ("decoder.reassemble_blocks.0.upsample.weight", 511, 0x370E7DB34C6240B7), + ("segmentation_head.head.4.weight", 42, 0x7172BD62BC39F701), +) + + +def hash_bits(name, indices): + """Counter-addressable SplitMix64; no RNG state, seed, or tensor-order dependence.""" + index = np.asarray(indices, dtype=np.uint64) + key = np.uint64(zlib.crc32(name.encode("utf-8"))) + with np.errstate(over="ignore"): + z = key + (index + np.uint64(1)) * np.uint64(0x9E3779B97F4A7C15) + z = (z ^ (z >> np.uint64(30))) * np.uint64(0xBF58476D1CE4E5B9) + z = (z ^ (z >> np.uint64(27))) * np.uint64(0x94D049BB133111EB) + return z ^ (z >> np.uint64(31)) + + +def check_hashes(): + """Known answers derived independently with scalar Python masked integers.""" + for name, index, expected in KNOWN_HASHES: + assert int(hash_bits(name, [index])[0]) == expected, (name, index) + + +def _native_rule(name, module, field): + """The pinned source rule for each tensor, without reading its sampled values.""" + import torch + + row = {"name": name, "fan_in": None, "initializer_fan_in": None, + "fan_out": None, "std": 0.0, "constant": None} + if isinstance(module, (torch.nn.LayerNorm, torch.nn.BatchNorm2d)): + assert field in ("weight", "bias"), name + row.update(constant=1.0 if field == "weight" else 0.0, + native_initializer="ones_" if field == "weight" else "zeros_", + native_source="torch 2.14 norm reset_parameters; SMP 0.5.0 decoder norm affine") + return row + if field in ("cls_token", "pos_embed"): + row.update(std=1e-6 if field == "cls_token" else .02, + native_initializer="normal_(std=1e-6)" if field == "cls_token" else "trunc_normal_(std=0.02,a=-2,b=2)", + native_source="timm 1.0.30 VisionTransformer.init_weights") + return row + assert field in ("weight", "bias"), name + if isinstance(module, torch.nn.Linear): + fan_in, fan_out = module.in_features, module.out_features + elif isinstance(module, torch.nn.Conv2d): + area = math.prod(module.kernel_size) + fan_in, fan_out = module.in_channels // module.groups * area, module.out_channels * area + elif isinstance(module, torch.nn.ConvTranspose2d): + assert module.groups == 1 and module.kernel_size == module.stride and module.dilation == (1, 1), name + # torch initializes stored [Cin,Cout,k,k] with Cout*k*k as fan_in. + # At each non-overlapping output, the actual sum instead has Cin inputs. + fan_in = module.out_channels * math.prod(module.kernel_size) + fan_out = module.in_channels * math.prod(module.kernel_size) + row["fan_in"] = module.in_channels + else: + raise ValueError(f"no declared native initializer for {name}") + row.update(initializer_fan_in=fan_in, fan_out=fan_out) + if row["fan_in"] is None: + row["fan_in"] = fan_in + if isinstance(module, torch.nn.ConvTranspose2d) or ( + name.startswith("encoder.") and isinstance(module, torch.nn.Conv2d)): + row.update(std=math.sqrt(1.0 / (3 * fan_in)), + native_initializer="kaiming_uniform_(a=sqrt(5))" if field == "weight" else "uniform_(-1/sqrt(fan_in),1/sqrt(fan_in))", + native_source="torch 2.14 _ConvNd.reset_parameters; no timm/SMP override") + elif field == "bias": + row.update(constant=0.0, native_initializer="zeros_", + native_source="timm 1.0.30 init_weights_vit_timm / SMP 0.5.0 base.initialization") + elif name.startswith("encoder.") and isinstance(module, torch.nn.Linear): + row.update(std=.02, native_initializer="trunc_normal_(std=0.02,a=-2,b=2)", + native_source="timm 1.0.30 init_weights_vit_timm") + elif name.startswith("decoder.") and isinstance(module, torch.nn.Conv2d): + row.update(std=math.sqrt(2.0 / fan_in), native_initializer="kaiming_uniform_(mode=fan_in,nonlinearity=relu)", + native_source="SMP 0.5.0 base.initialization.initialize_decoder") + elif ((name.startswith("decoder.") and isinstance(module, torch.nn.Linear)) or + (name.startswith("segmentation_head.") and isinstance(module, torch.nn.Conv2d))): + row.update(std=math.sqrt(2.0 / (fan_in + fan_out)), native_initializer="xavier_uniform_(gain=1)", + native_source="SMP 0.5.0 base.initialization.initialize_decoder/initialize_head") + else: + raise ValueError(f"no declared native initializer for {name}") + return row + + +def tensor_values(name, shape, rule): + if rule["constant"] is not None: + return np.full(shape, rule["constant"], dtype=np.float32) + u = (hash_bits(name, np.arange(math.prod(shape), dtype=np.uint64)) >> np.uint64(40)).astype(np.float64) + dyadic = (u + .5) / 2**23 - 1 + assert np.array_equal(dyadic, dyadic.astype(np.float32).astype(np.float64)) + # No rescaling by sampled RMS: the source's declared std is fixed beforehand. + return (dyadic * (math.sqrt(3.0) * rule["std"])).astype(np.float32).reshape(shape) + + +def initialize(model): + """Build every tensor twice and require bit identity before any calibration.""" + import torch + + check_hashes() + modules, report = dict(model.named_modules()), {} + with torch.no_grad(): + for name, parameter in model.named_parameters(): + parent, field = name.rsplit(".", 1) + assert parameter.dtype == torch.float32 + row = _native_rule(name, modules[parent], field) + values = tensor_values(name, tuple(parameter.shape), row) + second = tensor_values(name, tuple(parameter.shape), row) + assert np.array_equal(values.view(np.uint32), second.view(np.uint32)), name + assert np.isfinite(values).all(), name + parameter.copy_(torch.from_numpy(values)) + assert np.array_equal(parameter.detach().numpy().view(np.uint32), second.view(np.uint32)), name + row.update(key_crc32=zlib.crc32(name.encode("utf-8")), shape=list(parameter.shape), + second_build_bit_identical=True, exact_values_asserted=True) + report[name] = row + assert report.keys() == dict(model.named_parameters()).keys() + return report diff --git a/tests/reference/vit_b16_dpt224/reference.py b/tests/reference/vit_b16_dpt224/reference.py index 0c31577..e7ebede 100644 --- a/tests/reference/vit_b16_dpt224/reference.py +++ b/tests/reference/vit_b16_dpt224/reference.py @@ -96,6 +96,62 @@ def reduced_encoder(name, *, pretrained, in_chans): return model +# Fixed before numerical comparison; never tune these to an observed error. +CALIBRATION_BATCHES = 4 +CALIBRATION_BATCH_SIZE = 2 +CALIBRATION_SEED = 14128 +EVALUATION_SEED = 14127 + + +def calibrated_model(config): + """Named integer-hash weights at native scales, then the fixed BN calibration. + + initialization.initialize fixes every learned value by its declared formula. + Reset BN statistics, use cumulative averaging (momentum=None), and train + under no_grad on four distinct batches of two dyadic six-band 224 crops. + Each batch is dyadic(14128, "bn-calibration-{batch}", (2,224,224,6), + scale=.5, bits=16). Evaluation uses seed 14127, a different stream. + Return to eval and restore BN momentum; only running statistics/counters + may change. No optimizer, gradient, weight rescaling or evaluation input + participates in calibration. Head dropout is downstream of all BN layers. + """ + import hashlib + import torch + from .initialization import initialize + from tools.fixtures.core import dyadic + + model = smp_model(config) + model._integer_reference_recipe = initialize(model) + def parameter_digest(): + digest = hashlib.sha256() + for name, value in model.named_parameters(): + digest.update(name.encode()) + digest.update(value.detach().numpy().tobytes()) + return digest.hexdigest() + + before = parameter_digest() + norms = [module for module in model.modules() if isinstance(module, torch.nn.BatchNorm2d)] + momenta = [module.momentum for module in norms] + for module in norms: + module.reset_running_stats() + module.momentum = None + model.train() + try: + with torch.no_grad(): + for batch in range(CALIBRATION_BATCHES): + images = dyadic(CALIBRATION_SEED, f"bn-calibration-{batch}", + (CALIBRATION_BATCH_SIZE, 224, 224, 6), scale=.5, bits=16) + model(torch.from_numpy(images).permute(0, 3, 1, 2)) + finally: + model.eval() + for module, momentum in zip(norms, momenta): + module.momentum = momentum + assert parameter_digest() == before, "calibration changed learned parameters" + assert all(module.num_batches_tracked.item() == CALIBRATION_BATCHES for module in norms) + assert all(parameter.grad is None for parameter in model.parameters()) + return model + + def state_of(model): # The caller checks names/shapes independently against its config. return {name: value.numpy().copy() for name, value in model.state_dict().items() diff --git a/tests/test_vit_b16_dpt224.py b/tests/test_vit_b16_dpt224.py index dcc3d4b..56c05e3 100644 --- a/tests/test_vit_b16_dpt224.py +++ b/tests/test_vit_b16_dpt224.py @@ -94,34 +94,72 @@ def test_shared_packer_moves_every_kernel_position(factor, assets): _upsampling_parameters(weight.reshape(3, -1), bias, factor=factor) +def test_hash_known_answers_and_counter_addressing(): + from reference.vit_b16_dpt224.initialization import check_hashes, hash_bits + check_hashes() + name = "decoder.fusion_blocks.0.project.weight" + indices = np.arange(257, dtype=np.uint64) + whole = hash_bits(name, indices) + np.testing.assert_array_equal(whole, np.concatenate((hash_bits(name, indices[:31]), + hash_bits(name, indices[31:])))) + np.testing.assert_array_equal(whole[::-1], hash_bits(name, indices[::-1])) + assert not np.array_equal(whole, hash_bits(name + ".different", indices)) + + +def test_hash_initializer_preserves_native_scale_rules(): + pytest.importorskip("timm") + pytest.importorskip("segmentation_models_pytorch") + from reference.vit_b16_dpt224.initialization import initialize + from reference.vit_b16_dpt224.reference import smp_model + rows = initialize(smp_model(REDUCED)) + assert all(row["second_build_bit_identical"] for row in rows.values()) + assert rows["encoder.model.cls_token"]["std"] == 1e-6 + assert rows["encoder.model.pos_embed"]["std"] == .02 + assert rows["encoder.model.blocks.0.attn.qkv.weight"]["std"] == .02 + for field in ("weight", "bias"): + patch = rows["encoder.model.patch_embed.proj." + field] + assert patch["std"] == math.sqrt(1 / (3 * 1536)) + transpose = rows["decoder.reassemble_blocks.0.upsample." + field] + assert transpose["fan_in"] == 4 and transpose["initializer_fan_in"] == 64 + assert transpose["std"] == math.sqrt(1 / (3 * 64)) + assert rows["decoder.reassemble_blocks.2.project_to_feature_dim.weight"]["std"] == math.sqrt(2 / 144) + assert rows["decoder.projection_blocks.0.project.0.weight"]["std"] == math.sqrt(2 / (128 + 64)) + assert rows["segmentation_head.head.0.weight"]["std"] == math.sqrt(2 / (36 + 36)) + assert rows["segmentation_head.head.4.weight"]["std"] == math.sqrt(2 / (4 + 2)) + assert rows["segmentation_head.head.1.weight"]["constant"] == 1 + assert rows["segmentation_head.head.1.bias"]["constant"] == 0 + + @lru_cache(maxsize=2) -def _native_comparison(config): - from reference.vit_b16_dpt224.diagnostics import native_comparison +def _integer_comparison(config): + from reference.vit_b16_dpt224.diagnostics import integer_comparison with LF.offline_earth_engine(): - return native_comparison(config) + return integer_comparison(config) -@pytest.mark.parametrize("config", (REDUCED, pytest.param(DPT_B16, marks=pytest.mark.xfail( - strict=True, raises=AssertionError, - reason="native SMP seed14126: max_abs=0.00060272216796875 at fusion3; " - "logits=0.0003509521484375 exceed unchanged 1e-4 target"))), ids=("reduced", "full")) -def test_random_weight_smp_outputs(config): +@pytest.mark.parametrize("config", (REDUCED, DPT_B16), ids=("reduced", "full")) +def test_integer_weight_smp_final_outputs(config): pytest.importorskip("timm") pytest.importorskip("segmentation_models_pytorch") - record = _native_comparison(config) - differences = {name: row["mirror_vs_torch32"]["max_abs"] for name, row in record["outputs"].items()} + record = _integer_comparison(config) + assert len(record["outputs"]) == 22 + differences = {name: record["outputs"][name]["mirror_vs_torch32"]["max_abs"] + for name in ("head", "logits")} flips = record["outputs"]["logits"]["mirror_vs_torch32"]["argmax_flips"] - print("\n" + ("full" if config == DPT_B16 else "reduced") + " random-weight max_abs: " + print("\n" + ("full" if config == DPT_B16 else "reduced") + " hash-initialized final max_abs: " + json.dumps(differences) + "; argmax_flips=" + str(flips)) assert max(differences.values()) <= 1e-4, differences -def test_full_width_float64_ordering_for_every_output(): +@pytest.mark.parametrize("config", (REDUCED, DPT_B16), ids=("reduced", "full")) +def test_integer_weight_float64_ordering_for_every_intermediate(config): pytest.importorskip("timm") pytest.importorskip("segmentation_models_pytorch") - outputs = _native_comparison(DPT_B16)["outputs"] + outputs = _integer_comparison(config)["outputs"] assert len(outputs) == 22 for name, row in outputs.items(): + if name in ("head", "logits"): + continue # Both class outputs have the stricter float32 absolute check. assert row["mirror_vs_torch64"]["max_abs"] <= row["torch32_vs_torch64"]["max_abs"], (name, row) @@ -143,6 +181,7 @@ def test_smp_reference_rejects_unloaded_and_unexpected_weights(monkeypatch): def test_reduced_library_numpy_native_and_flattened_server_paths(): + """Original compact rank-at-most-four fixture weights, not calibrated weights.""" from reference.vit_b16_dpt224.reference import mirror, errors from reference.vit_b16_dpt224.execution import execute image, state = F.expanded(F._data(14126)) diff --git a/tools/fixtures/vit_dpt.py b/tools/fixtures/vit_dpt.py index 9552622..f4ab1a5 100644 --- a/tools/fixtures/vit_dpt.py +++ b/tools/fixtures/vit_dpt.py @@ -3,7 +3,8 @@ Complete 224x224 computation, sampled high-resolution outputs. Integer-only coefficients use four seed rows times distinct dyadic row gains, so matrices have rank at most four. This is composition evidence, not general-weight validation. -Independent offline tests also compare unrestricted SMP random weights at full width. +Separate offline numerical references use native-scale integer-hash weights and fixed +BatchNorm calibration at full and reduced width; this historical fixture is unchanged. """ from __future__ import annotations @@ -147,7 +148,7 @@ def fixtures(): "(passed: structured reduced twin; all readouts bit-identical to NumPy; " "EE vs SMP maximum absolute error 1.862645149230957e-9)", notes="Reduced whole-model composition, not individual-block evidence. " - "Rank <=4 projection matrices and rank1 positional rows; general random weights are compared offline separately. " + "Rank <=4 projection matrices and rank1 positional rows; native-scale integer-hash weights with calibrated BN are compared offline separately. " "All reassemble/fusion branches; 112/224 outputs sampled to 56x56; input seed echoed.")] diff --git a/tools/vit_b16_dpt224_numerics.py b/tools/vit_b16_dpt224_numerics.py index a8d8589..633de3b 100644 --- a/tools/vit_b16_dpt224_numerics.py +++ b/tools/vit_b16_dpt224_numerics.py @@ -1,10 +1,11 @@ -"""Record native DPT dtype comparisons offline, on a clean committed tree. +"""Record native-scale hash-initialized DPT dtype comparisons offline, on a clean committed tree. PYTHONPATH=. flock /tmp/tensor-ee-heavy.lock python tools/vit_b16_dpt224_numerics.py \ - --output docs/evidence/dpt-dtype-offline.json + --output docs/evidence/dpt-hash-offline.json Never overwrites an existing record. No weights are tuned, no cloud call is made. -The full-width 1e-4 failure is recorded, not converted into a passing claim. +Final outputs require 1e-4 vs float32; intermediate errors vs float64 must +not exceed float32 PyTorch's own. A failure is recorded without retuning. """ from __future__ import annotations @@ -19,7 +20,7 @@ from tools.live_fixtures import offline_earth_engine from tensor_ee.models.vit_b16_dpt224.configuration import DPT_B16, REDUCED -from reference.vit_b16_dpt224.diagnostics import INPUT_SEED, SEED, native_comparison +from reference.vit_b16_dpt224.diagnostics import INPUT_SEED, integer_comparison def _revision(): @@ -29,39 +30,46 @@ def _revision(): return subprocess.check_output(["git", "rev-parse", "HEAD"], text=True).strip() +def final_target(result): + return all(result["outputs"][name]["mirror_vs_torch32"]["max_abs"] <= 1e-4 + for name in ("head", "logits")) + + +def intermediate_target(result): + return all(row["mirror_vs_torch64"]["max_abs"] <= row["torch32_vs_torch64"]["max_abs"] + for name, row in result["outputs"].items() if name not in ("head", "logits")) + + def measure(): revision = _revision() + results = {} with offline_earth_engine() as attempts: - full = native_comparison(DPT_B16) - gc.collect() - reduced = native_comparison(REDUCED) + for name, config in (("full", DPT_B16), ("reduced", REDUCED)): + result = integer_comparison(config) + assert len(result["outputs"]) == 22 + results[name] = result + gc.collect() + # Both widths run exactly once, even if one numerical check fails. assert not attempts assert revision == _revision() - assert len(full["outputs"]) == len(reduced["outputs"]) == 22 - full_ordering = all(row["mirror_vs_torch64"]["max_abs"] <= row["torch32_vs_torch64"]["max_abs"] - for row in full["outputs"].values()) - reduced_target = all(row["mirror_vs_torch32"]["max_abs"] <= 1e-4 - for row in reduced["outputs"].values()) + claims = {name: {"final_float32_target_met": final_target(result), + "intermediate_float64_ordering_met": intermediate_target(result)} + for name, result in results.items()} return { - "kind": "dpt_dtype_offline_comparison", "schema_version": 1, - "status": "recorded" if full_ordering and reduced_target else "failed", + "kind": "dpt_hash_initialized_offline_comparison", "schema_version": 1, + "status": "passed" if len(results) == 2 and all( + all(row.values()) for row in claims.values()) else "failed", "revision": revision, "dirty": False, "cloud_calls": 0, "command": "PYTHONPATH=. python " + " ".join(sys.argv), - "seed": SEED, "input_seed": INPUT_SEED, - "weights": "native SMP float32 initialization, converted exactly by model.double()", + "input_seed": INPUT_SEED, + "weights": "SplitMix64(crc32(parameter name),flat index); uniform dyadics at native initializer std; native constants; fixed four-batch BN calibration; model.double()", "input": "same float32 dyadic values converted exactly to double", "fused_attention": False, "versions": {"python": platform.python_version(), **{ name: importlib.metadata.version(name) for name in ("torch", "numpy", "timm", "segmentation-models-pytorch", "earthengine-api")}}, - "claims": { - "absolute_tolerance": 1e-4, "reduced_float32_target_met": reduced_target, - "full_float32_target_met": all(row["mirror_vs_torch32"]["max_abs"] <= 1e-4 - for row in full["outputs"].values()), - "full_float64_ordering_asserted": True, "full_float64_ordering_met": full_ordering, - "reduced_float64_ordering_asserted": False, - }, - "full": full, "reduced": reduced, + "claims": {"absolute_tolerance": 1e-4, **claims}, + **results, } @@ -76,7 +84,7 @@ def main(): target.write(json.dumps(record, indent=2, allow_nan=False) + "\n") print(json.dumps({"status": record["status"], "revision": record["revision"], "claims": record["claims"]}, indent=2)) - return 0 if record["status"] == "recorded" else 1 + return 0 if record["status"] == "passed" else 1 if __name__ == "__main__":