Foundation model

EEGPT: results on public EEG datasets

EEGPT is a pretrained EEG Transformer (NeurIPS 2024). Its paper pretrains it on five public datasets — PhysioMI, HGD, TSU, SEED and M3CV — at 58 electrodes, 256 Hz and 4-second windows, and summarises the channels of each 0.25-second patch in four summary tokens. BCI Report ran the released checkpoint frozen on the eight core protocols, in the same runs as the LaBraM rows and, except on idle, the CBraMod rows, with the site’s fixed readout on those tokens in place of the authors’ learnable spatial filter and linear head.

Measured on: ds003810; EEGMAT; BETA; ds006593; TMNRED / ds005383; EESM19 scalp subset; ds005342 · Protocols: Motor imagery & rest; Arithmetic & rest; SSVEP · 8 channels; SSVEP · 4 channels; P300 target ERP; Semantic target ERP; Sleep staging; Idle & command

Also known as EEGPT · BINE022/EEGPT · eegpt_mcae_58chs_4s_large4E

Reference EEGPT: Pretrained Transformer for Universal and Reliable Representation of EEG Signals. NeurIPS 2024. ↗

Directory status: Evaluated · Official code ↗ · Description sources papers.neurips.cc · doi.org · github.com

Published results

Compare figures within a group only: task, cohort, chance level and electrode layout can differ between groups. One row is above another only where their 95% intervals do not overlap.

ds003810 · EEGPT, frozen encoder · motor imagery & rest

Source page: Core-matrix protocol: Motor imagery & rest · Chance level 50.0% · eegpt-core-update.json

MethodConditionMetricValuePeople
EEGPTFrozen encoder + ridge headBalanced accuracy58.3%54.9%–61.8%10

ds003810 is recorded at 125 Hz; its windows reach the encoder upsampled to 256 Hz, so they carry nothing above 62.5 Hz.

ds003810 · Pretraining · fixed readout

Source page: Does pretraining help? · eegpt-core-update.json

MethodConditionMetricValuePeople
EEGPTMI / rest · pretrainedBalanced accuracy58.3%10
EEGPTMI / rest · random initialization (mean)Balanced accuracy54.1%10

ds003810 · Pretraining · train-selected readout

Source page: Does pretraining help? · eegpt-core-update.json

MethodConditionMetricValuePeople
EEGPTMI / rest · pretrainedBalanced accuracy57.0%10
EEGPTMI / rest · random initialization (mean)Balanced accuracy53.1%10

EEGMAT · EEGPT, frozen encoder · arithmetic & rest

Source page: Core-matrix protocol: Arithmetic & rest · Chance level 50.0% · eegpt-core-update.json

MethodConditionMetricValuePeople
EEGPTFrozen encoder + ridge headBalanced accuracy65.7%60.9%–70.3%36

EEGMAT · Pretraining · fixed readout

Source page: Does pretraining help? · eegpt-core-update.json

MethodConditionMetricValuePeople
EEGPTMental workload · pretrainedBalanced accuracy65.7%36
EEGPTMental workload · random initialization (mean)Balanced accuracy59.2%36

EEGMAT · Pretraining · train-selected readout

Source page: Does pretraining help? · eegpt-core-update.json

MethodConditionMetricValuePeople
EEGPTMental workload · pretrainedBalanced accuracy66.0%36
EEGPTMental workload · random initialization (mean)Balanced accuracy58.6%36

BETA · EEGPT, frozen encoder · SSVEP, 8 channels

Source page: Core-matrix protocol: SSVEP · 8 channels · Chance level 2.5% · eegpt-core-update.json

MethodConditionMetricValuePeople
EEGPTFrozen encoder + ridge headBalanced accuracy20.3%18.2%–22.6%70

PO5 and PO6 use channel embeddings that EEGPT’s pretraining never trained: they are two of the four names in its 62-name channel dictionary (AF7, AF8, PO5, PO6) that its 58-electrode pretraining montage leaves out. The other six channels here, and all four of the 4-channel subset, use trained embeddings.

BETA · EEGPT, frozen encoder · SSVEP, 4 channels

Source page: Core-matrix protocol: SSVEP · 4 channels · Chance level 2.5% · eegpt-core-update.json

MethodConditionMetricValuePeople
EEGPTFrozen encoder + ridge headBalanced accuracy17.3%15.5%–19.2%70

ds006593 · EEGPT, frozen encoder · P300 target ERP

Source page: Core-matrix protocol: P300 target ERP · Chance level 50.0% · eegpt-core-update.json

MethodConditionMetricValuePeople
EEGPTFrozen encoder + ridge headBalanced accuracy54.0%51.5%–56.6%21

On the P300 and semantic targets, one-second windows ran as four real 0.25-second patches: the patch grid was set to four after the encoder was built, with no padding. EEGPT’s encoder treats each time patch on its own, so this is numerically the same as building it for 256-sample inputs, as the Orthosis pilot built it for its 128-sample windows.

TMNRED / ds005383 · EEGPT, frozen encoder · semantic target ERP

Source page: Core-matrix protocol: Semantic target ERP · Chance level 50.0% · eegpt-core-update.json

MethodConditionMetricValuePeople
EEGPTFrozen encoder + ridge headBalanced accuracy54.6%53.3%–55.9%30

EESM19 scalp subset · EEGPT, frozen encoder · sleep staging

Source page: Core-matrix protocol: Sleep staging · Chance level 20.0% · eegpt-core-update.json

MethodConditionMetricValuePeople
EEGPTFrozen encoder + ridge headBalanced accuracy75.5%73.9%–77.1%20

ds005342 · EEGPT, frozen encoder · idle & command

Source page: Core-matrix protocol: Idle & command · eegpt-core-update.json

MethodConditionMetricValuePeople
EEGPTFrozen encoder + linear headCommands detected ≤3 s7 / 601 of 4 people always abstained.4
EEGPTFrozen encoder + linear headIdle false activations2 / 604
EEGPTFrozen encoder + linear headWindow balanced accuracy57.2%4
EEGPTFrozen encoder + linear headWindow AUROC0.7804

Same run as the published LaBraM idle row; the published CBraMod idle row comes from another run, so a comparison with it is across runs. The window balanced accuracy and AUROC were computed from this run’s saved probabilities with the definitions of the further foundation-encoder rows; the run itself recorded the counts.

All methods → · All datasets →

Checkpoints, inputs and terms

No model’s authors endorse these results.

EEGPT

Panel
A row beside the core matrix on every protocol page
Encoder parameters
25.29M
Revision
BINE022/EEGPT @ a0e0a8fad729e2ecf4eedb3a81548a6e6d48a705
Checkpoint SHA-256
eegpt_mcae_58chs_4s_large4E.ckpt 9d63ebc80bba1ad5e3277df4eecfa05d2745e6243a12ff743c4c0a93930dfac0
Paper
EEGPT: Pretrained Transformer for Universal and Reliable Representation of EEG Signals (NeurIPS 2024) ↗
Code licence
Apache-2.0 (the repository’s source code only)
Weights licence
unresolved: the checkpoint’s own licence and terms could not be read from its hosting record, and the repository’s code licence is not evidence that it covers the weights
Weights
no original or converted weights are distributed; the hashes identify the checkpoint used and grant nothing
Rights review
Published by the owner’s decision, aggregate results only, as the pilot comparison is. The checkpoint’s licence could not be read; no publisher prohibition on independently computed aggregate results was found; no original or converted weights are distributed.
Input
the published 250 Hz microvolt windows, resampled to 256 Hz and divided by 1,000 (millivolts); only the recorded channels, each as its channel token (T3, T4, T5 and T6 named T7, T8, P7 and P8); no interpolation, padding, zero-filled channels or average reference
Pooling
the four summary tokens averaged over time patches and concatenated: 2,048 values per window
Row footnote
Every core window is shorter than EEGPT’s 4-second pretraining window: 1 or 2 seconds, and sleep as fifteen 2-second segments. The encoder computes each 0.25-second patch the same way at any length; a shorter window gives fewer patches to average.The readout is the site’s fixed probe on the frozen summary tokens, as for the published LaBraM and CBraMod rows: ridge (alpha 100) on 2,048 pooled values, and on idle a per-person logistic head. It is not the authors’ downstream probe, a learnable spatial filter with a linear head, and the windows are fed without the average reference EEGPT was pretrained with.
Pilot comparison
Frozen EEGPT against matched classical features on the Orthosis error-detection dataset →

Pretraining exposure, by dataset

Whether each core dataset is in the model authors’ published pretraining list, checked on 2026-10-12 at dataset level and linked to the source; a dataset absent from the list may still overlap the pretraining data.

DatasetProtocolsStatementSource
ds003810 Motor Imagery vs Rest (low-cost EEG; Peterson et al.)Motor imagery & restnot in the authors' published pretraining list (checked 2026-10-12)source ↗ · source ↗ · source ↗
EEGMAT (PhysioNet EEG During Mental Arithmetic Tasks; Zyma et al. 2019)Arithmetic & restnot in the authors' published pretraining list (checked 2026-10-12)source ↗ · source ↗ · source ↗
ds006593 cBCI Matrix Multimodal Dataset (Celik et al.)P300 target ERPnot in the authors' published pretraining list (checked 2026-10-12)source ↗ · source ↗ · source ↗
ds005383 TMNRED (Bai et al. 2025, Sci. Data 12:701)Semantic target ERPnot in the authors' published pretraining list (checked 2026-10-12)source ↗ · source ↗ · source ↗
EESM19 Ear-EEG Sleep Monitoring 2019 (OpenNeuro ds005185; Mikkelsen et al.)Sleep stagingnot in the authors' published pretraining list (checked 2026-10-12)source ↗ · source ↗ · source ↗
BETA 40-target SSVEP (Liu et al. 2020, Front. Neurosci. 14:627)SSVEP · 8 channels · SSVEP · 4 channelsnot in the authors' published pretraining list (checked 2026-10-12)source ↗ · source ↗ · source ↗
ds005342 EEG offline/online MI for standing and sitting (Triana-Guzman et al.)Idle & commandnot in the authors' published pretraining list (checked 2026-10-12)source ↗ · source ↗ · source ↗

Pretraining corpus: Five public datasets, as the paper’s Table 1 lists them: PhysioMI (PhysioNet motor imagery and execution), HGD, TSU (the Tsinghua 40-target SSVEP benchmark), SEED and M3CV; 58 electrodes, 256 Hz, millivolts, average reference, 4-second windows.

Note on the check: For context: BETA is not in EEGPT’s published pretraining list, but the Tsinghua 40-target SSVEP benchmark (Wang et al., 2017) is, as TSU. BETA’s authors describe BETA as an extension of that benchmark, from the same group with the same 40-target layout and its own recordings; whether anyone took part in both is not stated.

Cite this page

BCI Report (2026). EEGPT: results on public EEG datasets. https://bci.report/methods/eegpt/

Figures from release eegpt-core-update-20261013 (2026-10-13). Cite the upstream datasets as well: each dataset’s page gives its credit.

Every release is archived on Zenodo: doi:10.5281/zenodo.23123296. BibTeX for the site and its releases → · CITATION.cff ↗