Model Card for PoreSimNet
This is the HuggingFace storage location for all of the models for the PoreSimNet project. They include several base models as well as their tuned variants. All models were trained in PyTorch.
The PoreSimNet GitHub repository can be found here.
The dataset can be found here.
Model Details
Model Description
There are several models that were trained on the ClotSimNet dataset:
- EfficientNet (B0, B3, B7)
- ResNet (18, 50, 152)
- ConvNeXt-Tiny
The EfficientNet and ResNet models were chosen due to their precedence in the biomedical imaging field. ConvNeXt-Tiny was selected to explore a new architecture based on vision transformers to assess its performance relative to the more conventional CNN architectures.
- Developed by: Josh Gregory
Model Sources
Each model was imported using the instructions from the PyTorch documentation. The specific links for each model architecture are as follows:
Uses
These models are intended to be used to predict permeabilities from porous simulations, such as those found in blood clots or other porous media. The training set was exclusively computational fluid dynamics (CFD) simulations of blood clots, however these models could be fine-tuned on other porous media datasets.
Direct Use
These models are intended to predict permeability of porous media in environments with low Reynolds numbers (Re < 10).
Out-of-Scope Use
As of this publication, these models are not intended to treat, diagnose, or prevent any disease and have not been approved by the FDA.
How to Get Started with the Model
Each model was exported in ONNX (.onnx) and Safetensors (.safetensors).
See the inference_examples directory for how to inference these models in Safetensors format. For futher examples in ONNX, refer to the GitHub repository, with examples located in the path /poresimnet/ml/inference.
Loading the Models
See the inference_examples directory. Models in the Safetensors format were used the most for internal inference work.
Training Details
Training Data
All of the data can be found here. Refer to the Dataset card to find the relevant training data, as different kinds exist.
Training Procedure
All models were trained for 350 epochs with an early stopping patience of 70 epochs. Each model was then hyperparameter tuned for 24 hours and retrained with its tuned hyperparameters. For base hyperparameters, refer to each model's class in the model_classes directory.
Training Hyperparameters
All models were trained in bf16 mixed precision and were tuned for 24 hours on an NVIDIA GH200.
Evaluation
Testing Data
Refer to the Dataset card to find the relevant testing data, as different kinds exist.
Summary
The base directory contains all trained models with base hyperparameters. The tuned directory contains the models after hyperparameter tuning. The hyperparameters folder itself contains each model's tuned hyperparameters in a JSON file, and the inference_examples directory contains examples for how to inference our models in Safetensors format.
Model Examination
For all models the Captum library was used to aid in explainability of all models. For the MLP models, the following explainability algorithms were used:
- GradientSHAP
- DeepLIFT
- Feature ablation
For the CNN architectures, the GradCAM algorithm was used to create a heatmap of areas the model used to create its permeability estimate.
For more details and results, refer to the paper.
Environmental Impact
Carbon emissions were estimated by taking power curves from experiment tracking and using emissions data provided by the University of Colorado Research Computing Group.
For hyperparameter tuning, the amount of time to train a single base model was extrapolated to 24 hours, which was the rough amount of time to hyperparameter tune each model. The table below provides a best-effort estimation of the amount of CO2 emitted per model, measured in kg.
| Model | Base Model CO2 | Hyperparameter Tune CO2 | Tuned Model CO2 |
|---|---|---|---|
| Full MLP | 0.00314 | 0.137 | 0.00534 |
| First-order MLP | 0.00319 | 0.139 | 0.004228 |
| Dendrogram MLP | 0.000802 | 0.0491 | 0.00423 |
| ConvNeXt-Tiny | 0.782 | 3.69 | 0.153 |
| EfficientNet-B0 | 0.256 | 2.67 | 0.0914 |
| EfficientNet-B3 | 0.668 | 2.96 | 0.364 |
| EfficientNet-B7 | 0.806 | 3.41 | 0.330 |
| ResNet-18 | 0.139 | 2.70 | 0.0325 |
| ResNet-50 | 0.349 | 3.19 | 0.0915 |
| ResNet-152 | 0.726 | 3.60 | 0.176 |
From this, we provide a rough estimate that the entire training and hyperparameter tuning process emitted approximately 27.5 kg of CO2. This number is likely slightly higher, as this figure does not account for unsuccessful runs.
Technical Specifications
Model Architecture and Objective
Several architectures were considered. Both MLPs and CNNs were selected due to the fundamental difference in which they would estimate permeability.
Compute Infrastructure
This work utilized the Alpine high performance computing resource at the University of Colorado Boulder. Alpine is jointly funded by the University of Colorado Boulder, the University of Colorado Anschutz, and Colorado State University and with support from NSF grants OAC-2201538 and OAC-2322260.
Hardware
A single NVIDIA GH200 was used to train and tune all models, coupling an NVIDIA H100 GPU with the 72-core Grace CPU.
Software
All models were written in PyTorch Lightning.
Model Card Authors
Josh Gregory: josh.a.gregory42@gmail.com
Model Card Contact
Debanjan Mukherjee: debanjan@colorado.edu