--- license: cc-by-nc-4.0 library_name: braindecode tags: - eeg - polysomnography - sleep - foundation-model - braindecode --- # SleepFM — pretrained encoder Mirror of the official **SleepFM** encoder checkpoint, re-hosted for stable loading from [Braindecode](https://github.com/braindecode/braindecode). SleepFM is a multimodal polysomnography (PSG) foundation model introduced in: > R. Thapa et al., *"A multimodal sleep foundation model for disease prediction,"* > **Nature Medicine** (2026). https://doi.org/10.1038/s41591-025-04133-4 The downstream sleep stager lives in a separate repository, [`braindecode/SleepFMStager`](https://huggingface.co/braindecode/SleepFMStager), because a Braindecode `config.json` describes exactly one architecture. ## Files | File | Description | |------|-------------| | `model.safetensors` | The encoder, with the parameter names of `braindecode.models.SleepFM` | | `config.json` | Architecture of the checkpoint, read by `from_pretrained()` | | `model_base/best.pt` | The upstream artifact, byte-for-byte, kept for provenance | | `model_sleep_staging/best.pth` | The upstream staging artifact, byte-for-byte (see `SleepFMStager`) | `model.safetensors` holds the **same tensors** as `model_base/best.pt`; only the keys were rewritten (the `module.` prefix of the distributed training run stripped, and `positional_encoding.pe` renamed) so that the library needs no remapping code at load time. Loading either way gives bit-identical outputs. Note that the released encoder is contrastive and carries **no classification head**: `final_layer` is randomly initialised and must be fine-tuned. ## Usage ```python from braindecode.models import SleepFM # Defaults to this repository. model = SleepFM.from_pretrained(n_chans=4, n_outputs=5, n_times=3840, sfreq=128) model.eval() ``` Input must be sampled at **128 Hz**; the reference `patch_size=640` is a 5-second patch at that rate. A channel mask of shape `(batch, n_chans)` marks missing channels with `True`. ## License & attribution - **License: Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0).** - Copyright (c) 2025 Rahul Thapa. - Upstream source: https://github.com/zou-group/sleepfm-clinical These weights are **not** covered by Braindecode's BSD-3 license and inherit the upstream **noncommercial** terms. Re-hosted for reproducibility and stable availability only; attribution and the CC BY-NC 4.0 restriction are preserved.