ShallowFBCSPNet
Shallow ConvNet model from Schirrmeister et al (2017) [Schirrmeister2017].
Architecture-only repository. Documents the
braindecode.models.ShallowFBCSPNetclass. No pretrained weights are distributed here. Instantiate the model and train it on your own data.
Quick start
pip install braindecode
from braindecode.models import ShallowFBCSPNet
model = ShallowFBCSPNet(
n_chans=22,
sfreq=250,
input_window_seconds=4.0,
n_outputs=4,
)
The signal-shape arguments above are illustrative defaults β adjust to match your recording.
Documentation
- Full API reference: https://braindecode.org/stable/generated/braindecode.models.ShallowFBCSPNet.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/shallow_fbcsp.py#L24
Architecture
Parameters
| Parameter | Type | Description |
|---|---|---|
n_filters_time: int |
β | Number of temporal filters. |
filter_time_length: int |
β | Length of the temporal filter. |
n_filters_spat: int |
β | Number of spatial filters. |
pool_time_length: int |
β | Length of temporal pooling filter. |
pool_time_stride: int |
β | Length of stride between temporal pooling filters. |
| `final_conv_length: int | str` | β |
| `conv_nonlin: type[nn.Module] | Callable` | β |
pool_mode: str |
β | Method to use on pooling layers. "max" or "mean". |
activation_pool_nonlin: type[nn.Module] |
β | Non-linear module class to be used after pooling layers. |
split_first_layer: bool |
β | Split first layer into temporal and spatial layers (True) or just use temporal (False). There would be no non-linearity between the split layers. |
batch_norm: bool |
β | Whether to use batch normalisation. |
batch_norm_alpha: float |
β | Momentum for BatchNorm2d. |
drop_prob: float |
β | Dropout probability. |
References
- Schirrmeister, R. T., Springenberg, J. T., Fiederer, L. D. J., Glasstetter, M., Eggensperger, K., Tangermann, M., Hutter, F. & Ball, T. (2017). Deep learning with convolutional neural networks for EEG decoding and visualization. Human Brain Mapping , Aug. 2017. Online: http://dx.doi.org/10.1002/hbm.23730
Citation
Cite the original architecture paper (see References above) and braindecode:
@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.
