BlidReview's picture
weights, code, eval script
bdce880 verified
|
Raw
History Blame Contribute Delete
2.38 kB
# ezflow_v2/baselines β€” external neural-operator baselines
For a high-impact submission we must compare GeoReNet against current SOTA neural
operators, not only the original MeshGraphNet. Per the lit review, the two required
baselines are **Transolver** (ICML 2024) and **GINO** (NeurIPS 2023).
Approach (user-chosen): **Transolver first, then decide on GINO.** We use each
method's **official model code inside our training/eval harness** β€” same data
(`cache_v2`), same split, loss, augmentation, and `paper2/eval_table.py` β€” so the
comparison is apples-to-apples.
## Transolver (in progress)
- Official repo vendored under `Transolver-main/` (downloaded zip; git not installed).
We load `Car-Design-ShapeNetCar/models/Transolver.py` **verbatim** (the 3D
point-cloud Physics-Attention model).
- `transolver_wrap.py` β€” thin wrapper: feeds our graphs as
`cat([pos, node_features, broadcast(Re,yaw globals)])` so Transolver gets the
**same conditioning** GeoReNet's FiLM uses (fair); returns `[N, 7]`.
- Train: `train_v5.py --model transolver --tag transolver --cache cache_v2 --epochs 160 --batch 1`.
~3.88M params (β‰ˆ GeoReNet's 3.28M); **~45 s/epoch, ~1.2 GB VRAM** (attention-only,
much faster than the GNNs). Evaluated by `paper2/eval_table.py` (Transolver branch).
### ⚠️ Dependency lesson (important)
`pip install timm` (Transolver's only non-obvious dep) **silently upgraded torch
2.11.0+cu128 β†’ 2.12.1+cpu**, killing CUDA. Fix applied:
- removed `timm`/`torchvision`; restored `torch==2.11.0+cu128` via
`pip install torch==2.11.0 --index-url https://download.pytorch.org/whl/cu128 --no-deps --force-reinstall`;
- **stubbed the one symbol Transolver needs** (`timm.models.layers.trunc_normal_`
β†’ `torch.nn.init.trunc_normal_`) in `transolver_wrap._stub_timm()`, so **timm is
no longer required**. `einops` (pure-python) is kept.
- **Rule:** never `pip install` a package that depends on torch without `--no-deps`
(or check it won't move the pinned `torch==2.11.0+cu128`).
## GINO (pending β€” decide after Transolver)
GINO (GNO+FNO, `neuraloperator` library, SDF + latent grid) is heavier and more
dependency-sensitive (risk of another torch conflict; FNO on a latent grid may
strain the 8 GB GPU). If the official path is painful, fall back to a faithful
in-framework reimplementation. Decision deferred until Transolver lands.