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.