bruAristimunha's picture
Replace with clean markdown card
d9699d8 verified
---
license: bsd-3-clause
library_name: braindecode
pipeline_tag: feature-extraction
tags:
- eeg
- biosignal
- pytorch
- neuroscience
- braindecode
- convolutional
- sleep-staging
---
# SleepStagerChambon2018
Sleep staging architecture from Chambon et al. (2018) [Chambon2018].
> **Architecture-only repository.** Documents the
> `braindecode.models.SleepStagerChambon2018` class. **No pretrained weights are
> distributed here.** Instantiate the model and train it on your own
> data.
## Quick start
```bash
pip install braindecode
```
```python
from braindecode.models import SleepStagerChambon2018
model = SleepStagerChambon2018(
n_chans=2,
sfreq=100,
input_window_seconds=30.0,
n_outputs=5,
)
```
The signal-shape arguments above are illustrative defaults — adjust to
match your recording.
## Documentation
- Full API reference: <https://braindecode.org/stable/generated/braindecode.models.SleepStagerChambon2018.html>
- Interactive browser (live instantiation, parameter counts):
<https://huggingface.co/spaces/braindecode/model-explorer>
- Source on GitHub: <https://github.com/braindecode/braindecode/blob/master/braindecode/models/sleep_stager_chambon_2018.py#L13>
## Architecture
![SleepStagerChambon2018 architecture](https://braindecode.org/dev/_static/model/SleepStagerChambon2018.jpg)
## Parameters
| Parameter | Type | Description |
|---|---|---|
| `n_conv_chs` | int | Number of convolutional channels. Set to 8 in [Chambon2018]. |
| `time_conv_size_s` | float | Size of filters in temporal convolution layers, in seconds. Set to 0.5 in [Chambon2018] (64 samples at sfreq=128). |
| `max_pool_size_s` | float | Max pooling size, in seconds. Set to 0.125 in [Chambon2018] (16 samples at sfreq=128). |
| `pad_size_s` | float | Padding size, in seconds. Set to 0.25 in [Chambon2018] (half the temporal convolution kernel size). |
| `drop_prob` | float | Dropout rate before the output dense layer. |
| `apply_batch_norm` | bool | If True, apply batch normalization after both temporal convolutional layers. |
| `return_feats` | bool | If True, return the features, i.e. the output of the feature extractor (before the final linear layer). If False, pass the features through the final linear layer. |
| `n_channels` | int | Alias for `n_chans`. |
| `input_size_s:` | — | Alias for `input_window_seconds`. |
| `n_classes:` | — | Alias for `n_outputs`. |
| `activation: nn.Module, default=nn.ReLU` | — | Activation function class to apply. Should be a PyTorch activation module class like `nn.ReLU` or `nn.ELU`. Default is `nn.ReLU`. |
## References
1. Chambon, S., Galtier, M. N., Arnal, P. J., Wainrib, G., & Gramfort, A. (2018). A deep learning architecture for temporal sleep stage classification using multivariate and multimodal time series. IEEE Transactions on Neural Systems and Rehabilitation Engineering, 26(4), 758-769.
## Citation
Cite the original architecture paper (see *References* above) and braindecode:
```bibtex
@article{aristimunha2025braindecode,
title = {Braindecode: a deep learning library for raw electrophysiological data},
author = {Aristimunha, Bruno and others},
journal = {Zenodo},
year = {2025},
doi = {10.5281/zenodo.17699192},
}
```
## License
BSD-3-Clause for the model code (matching braindecode).
Pretraining-derived weights, if you fine-tune from a checkpoint,
inherit the licence of that checkpoint and its training corpus.