harsharajkumar273's picture
Update README.md
9aa8008 verified
|
Raw
History Blame Contribute Delete
2.19 kB
---
license: mit
library_name: generic
tags:
- representation-learning
- self-supervised-learning
- ultrasound
- eeg
- medical-imaging
- signal-processing
- sim-to-real
datasets:
- harsharajkumar273/ReCL-Ultrasound-Dataset
---
# ๐Ÿฉบ ReCL (Reconstructive Contrastive Learning) Checkpoints
Official model checkpoints for the paper **"Respecting Physical Priors: Reconstructive Contrastive Learning for Signal-Domain Sim-to-Real Transfer"** (NeurIPS 2026).
These model weights contain pre-trained MLP and CNN encoders trained under the **ReCL** objective on aperture-domain ultrasound RF datasets (PICMUS) and EEG denoising datasets (PhysioNet EEGBCI).
## ๐Ÿ“‚ Checkpoints Registry
This repository contains the following checkpoint weights:
1. **Ultrasound Encoders (Vanderbilt VU-BEAM Lab)**:
* `redcl_stage1_best.pt` / `_ckpt.pt`: Depth-Aware ReCL pre-trained MLP encoder (Vanderbilt).
* `recl_cnn_s42_best.pt` / `_s123_` / `_s777_`: ReCL pre-trained CNN backbones.
* `recon_no_strat_s42_best.pt`: Unstratified ReCL pre-trained MLP encoder.
2. **EEG Encoders (PhysioNet BCI)**:
* `eeg_redcl_best.pt` / `_ckpt.pt`: ReCL pre-trained EEG MLP encoder.
3. **Baselines & Ablations**:
* `byol_stage1_best.pt` / `simclr_stage1_best.pt`: SimCLR and BYOL baseline MLP checkpoints.
* `ablation_cosine_s42_best.pt` / `ablation_mse_only_s42_best.pt`: Ablation checkweights.
## ๐Ÿš€ Loading Checkpoints in PyTorch
To load these pre-trained encoders in your local setup:
```python
import torch
from src.model import Encoder
# 1. Initialize the MLP encoder model architecture
encoder = Encoder(input_dim=256, embedding_dim=256)
# 2. Load the state dictionary
checkpoint = torch.load("redcl_stage1_best.pt", map_location="cpu")
state_dict = checkpoint["model"] if "model" in checkpoint else checkpoint
# Extract encoder state dict weights (removes the "encoder." module prefix if present)
if any(k.startswith("encoder.") for k in state_dict.keys()):
state_dict = {k[len("encoder."):]: v for k, v in state_dict.items() if k.startswith("encoder.")}
encoder.load_state_dict(state_dict)
encoder.eval()
print("โœ“ ReCL Encoder model loaded successfully!")
```