Upload folder using huggingface_hub
Browse files- README.md +17 -11
- stress_operator/seeds.py +4 -5
README.md
CHANGED
|
@@ -142,13 +142,17 @@ method (`torch.compile`); the baseline reproduces the published 0.0064 on its go
|
|
| 142 |
| LinearNO, M=256 (this work) | 0.00635 | 0.00622 ± 0.0007 | 3 | 765,313 |
|
| 143 |
| **+ equilibrium regularizer (this model)** | 0.00653 | 0.00668 ± 0.0006 | 3 | 582,275 |
|
| 144 |
|
| 145 |
-
**Controlled comparison.**
|
| 146 |
-
|
| 147 |
-
|
| 148 |
-
|
| 149 |
-
|
| 150 |
-
|
| 151 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 152 |
|
| 153 |
**Physical consistency.** The regularizer reduces the discrete equilibrium residual ‖∇·σ‖² by
|
| 154 |
**~360×** (6.1e6 → 1.7e4) at no measured accuracy cost, and this consistency is maintained
|
|
@@ -159,10 +163,12 @@ out-of-distribution (OOD residual 1.73e4 vs. in-distribution 1.61e4).
|
|
| 159 |
|
| 160 |
#### Summary
|
| 161 |
|
| 162 |
-
Over 6–8 seeds under identical conditions, LinearNO is
|
| 163 |
-
|
| 164 |
-
|
| 165 |
-
discrete static equilibrium (∇·σ ≈ 0)
|
|
|
|
|
|
|
| 166 |
|
| 167 |
## Technical Specifications
|
| 168 |
|
|
|
|
| 142 |
| LinearNO, M=256 (this work) | 0.00635 | 0.00622 ± 0.0007 | 3 | 765,313 |
|
| 143 |
| **+ equilibrium regularizer (this model)** | 0.00653 | 0.00668 ± 0.0006 | 3 | 582,275 |
|
| 144 |
|
| 145 |
+
**Controlled comparison (with appropriate caution).** In this sample, LinearNO's median error
|
| 146 |
+
(0.00606) is lower than our reproduced baseline's (0.00766) at fewer parameters, and LinearNO reaches
|
| 147 |
+
the published LinearNO/Transolver level on its good seeds (best run, M=256: **0.00529**). However, both
|
| 148 |
+
models show **high run-to-run variance** (`torch.compile` non-determinism on a 1000-sample dataset),
|
| 149 |
+
and the baseline's higher mean is driven by 2 outlier seeds. We **do not** claim LinearNO "beats" the
|
| 150 |
+
baseline or is "more robust": with these seed counts (6 vs. 8) the difference may partly reflect
|
| 151 |
+
sampling noise, and an attempted mechanistic explanation (degenerate slice assignments in the
|
| 152 |
+
baseline's slice self-attention) was **empirically tested and refuted** — the outlier seed is a generic
|
| 153 |
+
poor-generalization minimum (healthy train loss, worse test loss), not a slice-attention failure. The
|
| 154 |
+
honest reading is that LinearNO is **comparable to** the baseline at ≤ its parameters, both reproducing
|
| 155 |
+
~0.0064 on good seeds.
|
| 156 |
|
| 157 |
**Physical consistency.** The regularizer reduces the discrete equilibrium residual ‖∇·σ‖² by
|
| 158 |
**~360×** (6.1e6 → 1.7e4) at no measured accuracy cost, and this consistency is maintained
|
|
|
|
| 163 |
|
| 164 |
#### Summary
|
| 165 |
|
| 166 |
+
Over 6–8 seeds under identical conditions, LinearNO is **comparable to** the reproduced Transolver
|
| 167 |
+
baseline (lower median in this sample, but within the high run-to-run variance), at ≤ its parameter
|
| 168 |
+
count. The original contribution of this checkpoint is physical consistency: the equilibrium
|
| 169 |
+
regularizer makes the predicted stress field satisfy discrete static equilibrium (∇·σ ≈ 0) at no
|
| 170 |
+
measured accuracy cost — a property maintained under geometric covariate shift and verified node-by-node
|
| 171 |
+
against FEM (R² = 0.9999).
|
| 172 |
|
| 173 |
## Technical Specifications
|
| 174 |
|
stress_operator/seeds.py
CHANGED
|
@@ -24,8 +24,7 @@ def set_seed(seed: int, deterministic: bool = True) -> None:
|
|
| 24 |
if deterministic:
|
| 25 |
torch.backends.cudnn.deterministic = True
|
| 26 |
torch.backends.cudnn.benchmark = False
|
| 27 |
-
# NOTE: torch.use_deterministic_algorithms(True) was tried but it
|
| 28 |
-
#
|
| 29 |
-
#
|
| 30 |
-
#
|
| 31 |
-
# run-to-run variance (README + model card). See docs/RECONCILIATION.md / PART 6 caveat 6.
|
|
|
|
| 24 |
if deterministic:
|
| 25 |
torch.backends.cudnn.deterministic = True
|
| 26 |
torch.backends.cudnn.benchmark = False
|
| 27 |
+
# NOTE: torch.use_deterministic_algorithms(True) was tried but it coincided with a worse
|
| 28 |
+
# Transolver-baseline result on GPU (baseline eager ~0.0090 vs ~0.0068 without it); we did
|
| 29 |
+
# not isolate the cause and do not force it. Reproducibility is handled by averaging seeds
|
| 30 |
+
# and disclosing run-to-run variance (README + model card). See PART 6 caveat 6.
|
|
|