PLAX EF Prediction Model
This repository hosts pretrained r2plus1d_18 models for estimating left ventricular ejection fraction (EF%) from parasternal long axis (PLAX) echocardiography clips. The models were developed as part of our research on learning EF from scarce data in MIMIC-IV Echo.
Citation
If you use this dataset, please cite the following works:
Primary manuscript
Gao et al., Learning from Scarce Labels: Multi-View Echocardiography for Ejection Fraction Prediction.
Preprint, 2025.
Prior conference paper
Gao, Z., Yurk, D., & Abu-Mostafa, Y. S. (2025). Machine Learning with Scarce Data: Ejection Fraction Prediction Using PLAX View.
In Medical Imaging with Deep Learning (MIDL).
https://openreview.net/forum?id=JEN5FzeFZj
BibTeX
@inproceedings{gao2025machine,
title = {Machine Learning with Scarce Data: Ejection Fraction Prediction Using {PLAX} View},
author = {Gao, Zhiyuan and Yurk, Dominic and Abu-Mostafa, Yaser S.},
booktitle = {Medical Imaging with Deep Learning},
year = {2025},
url = {https://openreview.net/forum?id=JEN5FzeFZj}
}
For labels and dataset preparation details, see the companion GitHub repo:
๐ Jeffrey4899/PLAX_EF_Labels_202509
Model Details
- Architecture: r2plus1d_18 (video-based CNN)
- Input: PLAX echo clips (MP4, H.264, ~64 frames, resized 112ร112)
- Output: Scalar EF estimate (0โ100%)
- Performance: ~7% MAE on the held-out test set (see publication for Rยฒ and full results).
- Dataset: Labels derived from the MIMIC-IV Echo dataset.
โ ๏ธ Two representative model checkpoints are provided here for reproducibility and simplicity:
0_0_r21d.pth0_2_r21d.pth
In practice, EF prediction performance is obtained by aggregating predictions from both models (50%โ50% averaging).
Intended Use & Limitations
- Research and education purposes only.
- Not for clinical deployment.
- Trained solely on PLAX view โ does not generalize to A4C or other views.
- Assumes reasonable video quality and clip length.
Disclaimer
โ ๏ธ This model is not a medical device and must not be used for clinical diagnosis or treatment.
How to Use
from huggingface_hub import hf_hub_download
import torch, torchvision
ckpt = hf_hub_download("Jeff4899/PLAX_EF", "0_2_r21d.pth")
model = torchvision.models.video.r2plus1d_18(weights=None)
model.fc = torch.nn.Linear(model.fc.in_features, 1)
state = torch.load(ckpt, map_location="cpu")
model.load_state_dict(state, strict=False)
model.eval()