| | --- |
| | license: apache-2.0 |
| | datasets: |
| | - Sleep-EDF |
| | - TUAB |
| | - MOABB |
| | language: |
| | - en |
| | tags: |
| | - eeg |
| | - brain |
| | - timeseries |
| | - self-supervised |
| | - transformer |
| | - biomedical |
| | - neuroscience |
| | --- |
| | |
| | # BENDR: BErt-inspired Neural Data Representations |
| |
|
| | Pretrained BENDR model for EEG classification tasks. This is the official Braindecode implementation |
| | of BENDR from Kostas et al. (2021). |
| |
|
| | ## Model Details |
| |
|
| | - **Model Type**: Transformer-based EEG encoder |
| | - **Pretraining**: Self-supervised learning on masked sequence reconstruction |
| | - **Architecture**: |
| | - Convolutional Encoder: 6 blocks with 512 hidden units |
| | - Transformer Contextualizer: 8 layers, 8 attention heads |
| | - Total Parameters: ~157M |
| | - **Input**: Raw EEG signals (20 channels, variable length) |
| | - **Output**: Contextualized representations or class predictions |
| |
|
| | ## Usage |
| |
|
| | ```python |
| | from braindecode.models import BENDR |
| | import torch |
| | |
| | # Load pretrained model |
| | model = BENDR(n_chans=20, n_outputs=2) |
| | |
| | # Load pretrained weights from Hugging Face |
| | from huggingface_hub import hf_hub_download |
| | checkpoint_path = hf_hub_download(repo_id="braindecode/bendr-pretrained-v1", filename="pytorch_model.bin") |
| | checkpoint = torch.load(checkpoint_path) |
| | model.load_state_dict(checkpoint["model_state_dict"], strict=False) |
| | |
| | # Use for inference |
| | model.eval() |
| | with torch.no_grad(): |
| | eeg_data = torch.randn(1, 20, 600) # (batch, channels, time) |
| | predictions = model(eeg_data) |
| | ``` |
| |
|
| | ## Fine-tuning |
| |
|
| | ```python |
| | import torch |
| | from torch.optim import Adam |
| | |
| | # Freeze encoder for transfer learning |
| | for param in model.encoder.parameters(): |
| | param.requires_grad = False |
| | |
| | # Fine-tune on downstream task |
| | optimizer = Adam(model.parameters(), lr=0.0001) |
| | ``` |
| |
|
| | ## Paper |
| |
|
| | [BENDR: Using transformers and a contrastive self-supervised learning task to learn from massive amounts of EEG data](https://doi.org/10.3389/fnhum.2021.653659) |
| |
|
| | Kostas, D., Aroca-Ouellette, S., & Rudzicz, F. (2021). |
| | Frontiers in Human Neuroscience, 15, 653659. |
| |
|
| | ## Citation |
| |
|
| | ```bibtex |
| | @article{kostas2021bendr, |
| | title={BENDR: Using transformers and a contrastive self-supervised learning task to learn from massive amounts of EEG data}, |
| | author={Kostas, Demetres and Aroca-Ouellette, St{\'e}phane and Rudzicz, Frank}, |
| | journal={Frontiers in Human Neuroscience}, |
| | volume={15}, |
| | pages={653659}, |
| | year={2021}, |
| | publisher={Frontiers} |
| | } |
| | ``` |
| |
|
| | ## Implementation Notes |
| |
|
| | - Start token is correctly extracted at index 0 (BERT [CLS] convention) |
| | - Uses T-Fixup weight initialization for stability |
| | - Includes LayerDrop for regularization |
| | - All architectural improvements from original paper maintained |
| |
|
| | ## License |
| |
|
| | Apache 2.0 |
| |
|
| | ## Authors |
| |
|
| | - Braindecode Team |
| | - Original paper: Kostas et al. (2021) |
| |
|