metadata
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:
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.
EEG Encoders (PhysioNet BCI):
eeg_redcl_best.pt/_ckpt.pt: ReCL pre-trained EEG MLP encoder.
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:
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!")