Instructions to use zeahub/openpros-inversion-net with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Keras
How to use zeahub/openpros-inversion-net with Keras:
# Available backend options are: "jax", "torch", "tensorflow". import os os.environ["KERAS_BACKEND"] = "jax" import keras model = keras.saving.load_model("hf://zeahub/openpros-inversion-net") - Notebooks
- Google Colab
- Kaggle
InversionNet β OpenPros speed-of-sound reconstruction
Keras 3 port of the pretrained InversionNet baseline released with the OpenPros limited-view prostate ultrasound computed tomography (USCT) benchmark. It reconstructs a speed-of-sound map directly from simulated multi-source waveform data, without an iterative solver.
Because it is a Keras 3 model, it runs on the JAX, TensorFlow and PyTorch backends. The
weights are converted from the original PyTorch checkpoint (model.pth, also in this repo)
and reproduce its output to within float32 round-off (max abs. difference ~4e-5).
Usage
from zea.models.inversionnet import InversionNet
model = InversionNet.from_preset("inversionnet-openpros")
sos = model(waveforms) # (B, 1000, 161, 40) -> (B, 401, 161, 1), in [-1, 1]
Inputs are waveforms of shape (batch, 1000 time samples, 161 receivers, 40 source/receiver combinations).
Preprocessing (required)
The weights only work on input scaled the way they were trained, and mis-scaled input degrades the reconstruction silently rather than raising:
- Sign-preserving log compression,
t(x) = sign(x) * log1p(|k * x|), withk = 1e5. - Min-max normalize
[t(-0.25), t(0.45)]to[-1, 1], where-0.25/0.45are the OpenProsdata_min/data_maxfrom itsdataset_config.json.
The output is in [-1, 1] and maps linearly onto the OpenPros label range, 1300β3600 m/s.
kis part of the weights, not a tunable. The OpenPros job scripts pass--k 1e9, butk = 1e5is what reproduces this checkpoint on the released data: on the OpenPros sample it gives a mean absolute error of 14 m/s against the ground-truth map, wherek = 1e9gives 244 m/s. The optimum is sharp β an order of magnitude either way costs roughly 3x in error.
See the zea documentation for the full pipeline.
Attribution
The architecture, the training data and these weights are the work of the OpenPros and InversionNet authors β please cite both when you use this model:
- Y. Wu and Y. Lin. InversionNet: An Efficient and Accurate Data-Driven Full Waveform Inversion. IEEE Transactions on Computational Imaging, 6:419β433, 2020. doi:10.1109/TCI.2019.2956866 Β· arXiv:1811.07875
- H. Wang, Y. Wu, Y. Feng, P. Jin, L. Zhang, S. Feng, J. Wiskin, B. Turkbey, P. A. Pinto, B. J. Wood, S. Luo, Y. Chen, E. Boctor and Y. Lin. OpenPros: A Large-Scale Dataset for Limited View Prostate Ultrasound Computed Tomography. 2025. arXiv:2505.12261 Β· code
Licensed CC-BY-4.0, following the original OpenPros release.
About
Converted and hosted as part of OpenH-RF, an open ultrasound channel-data initiative by NVIDIA, TU/e and Stanford, and distributed through zea.
- Downloads last month
- 65