--- license: cc-by-nc-4.0 library_name: braindecode tags: - eeg - polysomnography - sleep-staging - foundation-model - braindecode --- # SleepFMStager — pretrained sleep stager Mirror of the official **SleepFM** sleep-staging model, 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 ## Files | File | Description | |------|-------------| | `model.safetensors` | The full stager, with the parameter names of `braindecode.models.SleepFMStager` | | `config.json` | Architecture of the checkpoint, read by `from_pretrained()` | Upstream ships the stager in two pieces: the channel-agnostic tokenizer lives in the encoder checkpoint (`model_base/best.pt`) and the staging head in `model_sleep_staging/best.pth`. This file **merges both**, so a single call returns a model that is pretrained end to end, its five-class output layer included. The tensors are those of the upstream artifacts; only the keys were rewritten to the library's parameter names. Loading this file or the two upstream ones gives bit-identical outputs. The upstream artifacts themselves are kept, byte-for-byte, in [`braindecode/SleepFM`](https://huggingface.co/braindecode/SleepFM). ## Usage ```python from braindecode.models import SleepFMStager # Defaults to this repository. model = SleepFMStager.from_pretrained(n_chans=4, n_outputs=5, n_times=3840, sfreq=128) model.eval() ``` The output has shape `(batch, n_outputs, n_patches)`: one prediction per **5-second patch**, not per 30-second scoring epoch, so six predictions cover one scored epoch. For this checkpoint the five classes are Wake, N1, N2, N3 and REM. Input must be sampled at **128 Hz**. Pass `n_outputs` different from 5 to reinitialise the output layer for another label set. ## 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.