BrainBERT โ€” Foundation Model for Intracranial Neural Signals

Pretrained weights for braindecode.models.BrainBERT, a faithful braindecode port of BrainBERT (Wang et al., ICLR 2023), a self-supervised foundation model for intracranial (sEEG/iEEG) recordings.

Provenance & license

These weights are the official pretrained "large" checkpoint (stft variant) released by the original authors. The Transformer encoder and input encoding are mapped 1:1 into the braindecode BrainBERT module (the masked spectrogram-reconstruction head, used only for the self-supervised pretraining objective, is kept for weight parity; the classification head is a braindecode-native addition, randomly initialized).

The upstream repository ships no explicit license file, so this repository is labelled unknown: the original authors retain all rights, and these weights are re-hosted for convenience to make from_pretrained work out of the box. If you use them, please cite the original BrainBERT paper and refer to the authors' repository for terms of use.

Model configuration

This checkpoint uses the released "large" configuration (~43M parameters):

hidden_dim 768
ffn_dim 3072
n_layers 6
n_heads 12
freq_cutoff (input_dim) 40
nperseg 400
noverlap 350
activation GELU
sfreq 2048 Hz

The signal is expected at 2048 Hz (Laplacian-re-referenced, as in the paper). The short-time Fourier transform front-end is computed inside the model, so it consumes raw (batch, n_chans, n_times) signal directly (upstream fed a pre-computed spectrogram). Frames are pooled over time and channels, so you may freely change n_chans and n_outputs (the classification head is task-specific and randomly initialized โ€” fine-tune it on your downstream task). n_times only needs to be long enough to yield at least one spectrogram frame.

Usage

from braindecode.models import BrainBERT

# The encoder loads the pretrained weights; the classification head is
# (re)initialized for your task via n_outputs.
model = BrainBERT.from_pretrained("braindecode/brainbert-pretrained", n_outputs=2)

Fidelity

The ported encoder reproduces the upstream reference (MaskedTFModel, intermediate_rep=True) to within ~6e-5 max absolute difference on the authors' demo signal โ€” the residual is cross-device float32 rounding in the fixed sinusoidal positional table (computed on GPU at training time, regenerated on CPU here), which grows only at positions far beyond any realistic sequence length.

Citation

@inproceedings{wang2023brainbert,
  title     = {{BrainBERT}: Self-supervised representation learning for intracranial recordings},
  author    = {Wang, Christopher and Subramaniam, Vishwaas and Yaari, Adam Uri and
               Kreiman, Gabriel and Katz, Boris and Cases, Ignacio and Barbu, Andrei},
  booktitle = {International Conference on Learning Representations (ICLR)},
  year      = {2023}
}
Downloads last month
16
Safetensors
Model size
43.2M params
Tensor type
F32
ยท
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Paper for braindecode/brainbert-pretrained