PoreML V1 — reference model checkpoints

The trained weights behind the PoreML benchmark: five reference models — unet3d, fno3d, p3d, transolver, abupt — on the next-frame forecasting task of PoreML/PoreML_data, in two phases.

Phase Folder Runs Report this checkpoint
base training, 20 effective epochs train/ 35 ckpts/best.pt — best one-step validation mae@phi
push-forward fine-tune of each base run train_push/ 35 ckpts/best_rollout.pt — best 64-step rollout mae@phi

35 = 5 models × 7 tasks: the gen (generated media) and all (generated ∪ micro-CT) splits of drainage, GDL and trapping, plus underfill's single all split.

Download

With the PoreML code repository checked out and installed (uv sync):

uv run poreml checkpoints --dry-run                           # what is there and how big it is (7 GB)
uv run poreml checkpoints --phase train_push --which best_rollout   # the weights the paper reports
uv run poreml checkpoints --campaign drainage --model unet --kind gen
uv run poreml checkpoints                                     # everything

Filters are --phase, --campaign, --model, --kind and --which; they intersect and each is repeatable. Files land under case/, which is where the push configs' train.init_from, the transfer studies (case/shift, case/scale) and util/inference look a finished run up — nothing has to be moved. Rerunning resumes. Without the package:

hf download PoreML/PoreML_checkpoint --local-dir case --exclude README.md checkpoints.csv

Layout

The repository root is the benchmark's case/ folder:

<phase>/<campaign>/<model>_<kind>/ckpts/<run>/
    config.yaml        the full config the run was trained with; a checkpoint is always scored with it
    run_meta.json      status, resolved data and split (with sha256), model size, provenance, progress
    metrics.csv        one row per epoch: losses, learning rate, every validation metric
    train_log.csv      the training loss every 100 steps
    ckpts/best.pt            best one-step validation metric
    ckpts/last.pt            the final epoch
    ckpts/best_rollout.pt    best rollout metric (push-forward runs)
checkpoints.csv        every weight file: phase, campaign, model, kind, path, epoch, bytes, sha256

A .pt is a torch.saved dict: model (the state dict), config (the model's name, params and precision), epoch, metrics. run_meta.json of a push-forward run records the path and sha256 of the base best.pt it started from; it matches checkpoints.csv.

Not included: optimiser state, the per-epoch rollout candidates, and stored rollout frames — poreml inference, poreml metric and poreml render reproduce those from the weights.

Use

RUN=case/train_push/drainage/unet_gen/ckpts/<run>
uv run poreml rollout -c $RUN/config.yaml --ckpt $RUN/ckpts/best_rollout.pt   # one scored 64-step rollout per validation run
uv run python case/shift_push/submit.py --dry-run                               # the transfer studies see the runs as finished

The runs were trained on single NVIDIA H200 GPUs with PyTorch 2.11 (CUDA 12.8), tf32 everywhere except AB-UPT's bf16. Paths inside the text files are relative to the code repository's root; the node's hostname has been removed from run_meta.json, and nothing else was changed.

Licence

MIT for the weights of unet3d, fno3d, p3d and transolver. The abupt weights are derived from the AB-UPT architecture and follow its upstream Emmi AI Non-Production License: research and evaluation use only.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Dataset used to train PoreML/PoreML_checkpoint