ChestX-Ray14 Official-Split Ensemble β 3 checkpoints
Three trained checkpoints for 14-pathology multi-label classification on the NIH ChestX-Ray14 dataset, forming the reported result of grisha1998/chestxray-project: 0.8222 test macro AUROC, probability-averaged ensemble, official NIH train/val/test split.
β Not for clinical use
This is a research project. It is not a medical device, has not been clinically validated, has not been reviewed or approved by any regulatory body, and must not be used to inform the care of any patient. Labels come from automated text mining of radiology reports (~10% noise); evaluation is a retrospective benchmark on one public dataset.
Files
| File | Backbone | Image size |
|---|---|---|
official_convnext_384.pth |
convnext_small (timm, ImageNet-1k) |
384 |
official_swin_384.pth |
swin_base_patch4_window12_384 (timm, ms_in22k_ft_in1k, 87.9M params) |
384 |
official_densenet_512.pth |
densenet121 (timm, ImageNet-1k) |
512 |
Each file is a torch.save dict: {"epoch": int, "model_state": state_dict, "best_macro_auroc": float, "metrics": {...}}. Load with
torch.load(path, weights_only=True)["model_state"] into a
DualTaskChestXRayModel built from the matching config in
configs/official/
of the source repo. Every inference call must pass need_seg=False (the
segmentation decoder was never trained β see the source repo's README.md).
Results (official NIH split)
| Model | Val macro AUROC | Test macro AUROC |
|---|---|---|
official_convnext_384 |
0.8243 | 0.8015 |
official_swin_384 |
0.8219 | 0.8069 |
official_densenet_512 |
0.8180 | 0.7945 |
| Ensemble (probability-averaged, no TTA) | 0.8416 | 0.8222 |
Selection (keep all three members) was made on validation, before the test
split was read once. The val/test ranking inverts between members β the
spread (0.0053) is inside noise; see the source repo's DOCUMENTATION.md
Β§14.8 for the full writeup, including calibration and per-class working
points (which are not included in these checkpoint files β they're small
JSON artifacts tracked directly in the GitHub repo under outputs/calibration/
and outputs/working_points/).
Training
12 epochs each, effective batch 32 (gradient accumulation), Asymmetric Loss (ASL) with label smoothing (0.05/0.95), aspect-ratio-preserving padding + Lanczos resize, CLAHE, micro-rotations β€10Β°. Full training configuration, code, and every non-negotiable clinical-safety rule this pipeline enforces (patient-level splits, no image squashing, no vertical flips, ...) is in the source repository.
License
Code: MIT. These weights are derived from NIH ChestX-Ray14 data and inherit its terms β consult the NIH Clinical Center's release terms before further redistribution.