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