| --- |
| tags: |
| - chest-xray |
| - radiology |
| - contrastive-learning |
| - mimic-cxr |
| - vision-encoder |
| license: apache-2.0 |
| --- |
| |
| # LAPVQA — Pretrain (Sigmoid) |
|
|
| Part of the [LAPVQA collection](https://huggingface.co/collections/dmusingu/lapvqa). |
|
|
| ## Description |
|
|
| A **ViT-L/14** vision encoder trained from scratch on [MIMIC-CXR](https://physionet.org/content/mimic-cxr) |
| using a **sigmoid (multi-label binary cross-entropy) contrastive loss** — an alternative to InfoNCE that |
| treats each image-text pair independently rather than competing within the batch. |
|
|
| ## Architecture |
|
|
| | Component | Detail | |
| |---|---| |
| | Vision backbone | ViT-L/14, 24-layer, 1024-dim, 16-head, patch 14, 384 px | |
| | Text encoder | 6-layer, 512-dim bidirectional transformer, GPT-2 vocab (50 257) | |
| | Projection | Linear → 512-dim shared embedding space | |
| | Loss | Per-pair sigmoid BCE (SigLIP-style) | |
| | Training data | MIMIC-CXR (physionet.org/content/mimic-cxr) | |
| | Epochs | 50 | |
|
|
| ## Downstream Evaluation (frozen encoder + linear probe) |
|
|
| | Dataset | Mean AUC | |
| |---|---| |
| | NIH CXR-14 (14-class) | 0.650 | |
| | CheXpert-5 (5-class) | 0.785 | |
|
|
| ## Files |
|
|
| | File | Description | |
| |---|---| |
| | `encoder_final.pt` | Vision encoder weights at end of training | |
| | `model_best.pt` | Full model at best validation loss | |
| | `model_epochXXX.pt` | Periodic epoch snapshots (every 10 epochs) | |
|
|
| ## Usage |
|
|
| ```python |
| import torch |
| from lapvqa.pretrain.model import ContrastiveModel |
| |
| ckpt = torch.load("encoder_final.pt", map_location="cpu") |
| model = ContrastiveModel() |
| model.vision_encoder.load_state_dict(ckpt) |
| model.eval() |
| ``` |
|
|