File size: 3,438 Bytes
bf2c1bd a205c41 bf2c1bd a205c41 bf2c1bd a205c41 bf2c1bd a205c41 bf2c1bd a205c41 bf2c1bd a205c41 bf2c1bd a205c41 bf2c1bd | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 | ---
license: bsd-3-clause
library_name: braindecode
pipeline_tag: feature-extraction
tags:
- eeg
- biosignal
- pytorch
- neuroscience
- braindecode
- convolutional
- sleep-staging
---
# USleep
Sleep staging architecture from Perslev et al (2021) [1].
> **Architecture-only repository.** Documents the
> `braindecode.models.USleep` 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 USleep
model = USleep(
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.USleep.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/usleep.py#L14>
## Architecture

## Parameters
| Parameter | Type | Description |
|---|---|---|
| `n_chans` | int | Number of EEG or EOG channels. Set to 2 in [1] (1 EEG, 1 EOG). |
| `sfreq` | float | EEG sampling frequency. Set to 128 in [1]. |
| `depth` | int | Number of conv blocks in encoding layer (number of 2x2 max pools). Note: each block halves the spatial dimensions of the features. |
| `n_time_filters` | int | Initial number of convolutional filters. Set to 5 in [1]. |
| `complexity_factor` | float | Multiplicative factor for the number of channels at each layer of the U-Net. Set to 2 in [1]. |
| `with_skip_connection` | bool | If True, use skip connections in decoder blocks. |
| `n_outputs` | int | Number of outputs/classes. Set to 5. |
| `input_window_seconds` | float | Size of the input, in seconds. Set to 30 in [1]. |
| `time_conv_size_s` | float | Size of the temporal convolution kernel, in seconds. Set to 9 / 128 in [1]. |
| `ensure_odd_conv_size` | bool | If True and the size of the convolutional kernel is an even number, one will be added to it to ensure it is odd, so that the decoder blocks can work. This can be useful when using different sampling rates from 128 or 100 Hz. |
| `activation` | nn.Module, default=nn.ELU | Activation function class to apply. Should be a PyTorch activation module class like `nn.ReLU` or `nn.ELU`. Default is `nn.ELU`. |
## References
1. Perslev M, Darkner S, Kempfner L, Nikolic M, Jennum PJ, Igel C. U-Sleep: resilient high-frequency sleep staging. *npj Digit. Med.* 4, 72 (2021). https://github.com/perslev/U-Time/blob/master/utime/models/usleep.py
## 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.
|