| --- |
| 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!") |
| ``` |
|
|
|
|