# EEGPT: results on public EEG datasets

Foundation model

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](https://bci.report/datasets/ds003810/); [EEGMAT](https://bci.report/datasets/eegmat/); [BETA](https://bci.report/datasets/beta/); [ds006593](https://bci.report/datasets/ds006593/); [TMNRED / ds005383](https://bci.report/datasets/tmnred/); [EESM19 scalp subset](https://bci.report/datasets/eesm19/); [ds005342](https://bci.report/datasets/ds005342/) · Protocols: [Motor imagery & rest](https://bci.report/protocols/mi-rest/); [Arithmetic & rest](https://bci.report/protocols/arithmetic-rest/); [SSVEP · 8 channels](https://bci.report/protocols/beta-8ch/); [SSVEP · 4 channels](https://bci.report/protocols/beta-4ch/); [P300 target ERP](https://bci.report/protocols/p300-target/); [Semantic target ERP](https://bci.report/protocols/semantic-target/); [Sleep staging](https://bci.report/protocols/sleep-scalp/); [Idle & command](https://bci.report/protocols/idle/)

**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. ↗](https://doi.org/10.52202/079017-1239)

Directory status: Evaluated · [Official code ↗](https://github.com/BINE022/EEGPT) · Description sources [papers.neurips.cc](https://papers.neurips.cc/paper_files/paper/2024/file/4540d267eeec4e5dbd9dae9448f0b739-Paper-Conference.pdf) · [doi.org](https://doi.org/10.52202/079017-1239) · [github.com](https://github.com/BINE022/EEGPT/tree/a0e0a8fad729e2ecf4eedb3a81548a6e6d48a705)

## 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](https://bci.report/datasets/ds003810/) · EEGPT, frozen encoder · motor imagery & rest

Source page: [Core-matrix protocol: Motor imagery & rest](https://bci.report/protocols/mi-rest/#eegpt) · Chance level 50.0% · [eegpt-core-update.json](https://bci.report/data/eegpt-core-update.json)

| Method | Condition | Metric | Value | People |
| --- | --- | --- | --- | --- |
| [EEGPT](https://bci.report/methods/eegpt/) | Frozen encoder + ridge head | Balanced accuracy | 58.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](https://bci.report/datasets/ds003810/) · Pretraining · fixed readout

Source page: [Does pretraining help?](https://bci.report/topics/does-pretraining-help/) · [eegpt-core-update.json](https://bci.report/data/eegpt-core-update.json)

| Method | Condition | Metric | Value | People |
| --- | --- | --- | --- | --- |
| [EEGPT](https://bci.report/methods/eegpt/) | MI / rest · pretrained | Balanced accuracy | 58.3% | 10 |
| [EEGPT](https://bci.report/methods/eegpt/) | MI / rest · random initialization (mean) | Balanced accuracy | 54.1% | 10 |

### [ds003810](https://bci.report/datasets/ds003810/) · Pretraining · train-selected readout

Source page: [Does pretraining help?](https://bci.report/topics/does-pretraining-help/) · [eegpt-core-update.json](https://bci.report/data/eegpt-core-update.json)

| Method | Condition | Metric | Value | People |
| --- | --- | --- | --- | --- |
| [EEGPT](https://bci.report/methods/eegpt/) | MI / rest · pretrained | Balanced accuracy | 57.0% | 10 |
| [EEGPT](https://bci.report/methods/eegpt/) | MI / rest · random initialization (mean) | Balanced accuracy | 53.1% | 10 |

### [EEGMAT](https://bci.report/datasets/eegmat/) · EEGPT, frozen encoder · arithmetic & rest

Source page: [Core-matrix protocol: Arithmetic & rest](https://bci.report/protocols/arithmetic-rest/#eegpt) · Chance level 50.0% · [eegpt-core-update.json](https://bci.report/data/eegpt-core-update.json)

| Method | Condition | Metric | Value | People |
| --- | --- | --- | --- | --- |
| [EEGPT](https://bci.report/methods/eegpt/) | Frozen encoder + ridge head | Balanced accuracy | 65.7% (60.9%–70.3%) | 36 |

### [EEGMAT](https://bci.report/datasets/eegmat/) · Pretraining · fixed readout

Source page: [Does pretraining help?](https://bci.report/topics/does-pretraining-help/) · [eegpt-core-update.json](https://bci.report/data/eegpt-core-update.json)

| Method | Condition | Metric | Value | People |
| --- | --- | --- | --- | --- |
| [EEGPT](https://bci.report/methods/eegpt/) | Mental workload · pretrained | Balanced accuracy | 65.7% | 36 |
| [EEGPT](https://bci.report/methods/eegpt/) | Mental workload · random initialization (mean) | Balanced accuracy | 59.2% | 36 |

### [EEGMAT](https://bci.report/datasets/eegmat/) · Pretraining · train-selected readout

Source page: [Does pretraining help?](https://bci.report/topics/does-pretraining-help/) · [eegpt-core-update.json](https://bci.report/data/eegpt-core-update.json)

| Method | Condition | Metric | Value | People |
| --- | --- | --- | --- | --- |
| [EEGPT](https://bci.report/methods/eegpt/) | Mental workload · pretrained | Balanced accuracy | 66.0% | 36 |
| [EEGPT](https://bci.report/methods/eegpt/) | Mental workload · random initialization (mean) | Balanced accuracy | 58.6% | 36 |

### [BETA](https://bci.report/datasets/beta/) · EEGPT, frozen encoder · SSVEP, 8 channels

Source page: [Core-matrix protocol: SSVEP · 8 channels](https://bci.report/protocols/beta-8ch/#eegpt) · Chance level 2.5% · [eegpt-core-update.json](https://bci.report/data/eegpt-core-update.json)

| Method | Condition | Metric | Value | People |
| --- | --- | --- | --- | --- |
| [EEGPT](https://bci.report/methods/eegpt/) | Frozen encoder + ridge head | Balanced accuracy | 20.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](https://bci.report/datasets/beta/) · EEGPT, frozen encoder · SSVEP, 4 channels

Source page: [Core-matrix protocol: SSVEP · 4 channels](https://bci.report/protocols/beta-4ch/#eegpt) · Chance level 2.5% · [eegpt-core-update.json](https://bci.report/data/eegpt-core-update.json)

| Method | Condition | Metric | Value | People |
| --- | --- | --- | --- | --- |
| [EEGPT](https://bci.report/methods/eegpt/) | Frozen encoder + ridge head | Balanced accuracy | 17.3% (15.5%–19.2%) | 70 |

### [ds006593](https://bci.report/datasets/ds006593/) · EEGPT, frozen encoder · P300 target ERP

Source page: [Core-matrix protocol: P300 target ERP](https://bci.report/protocols/p300-target/#eegpt) · Chance level 50.0% · [eegpt-core-update.json](https://bci.report/data/eegpt-core-update.json)

| Method | Condition | Metric | Value | People |
| --- | --- | --- | --- | --- |
| [EEGPT](https://bci.report/methods/eegpt/) | Frozen encoder + ridge head | Balanced accuracy | 54.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](https://bci.report/datasets/tmnred/) · EEGPT, frozen encoder · semantic target ERP

Source page: [Core-matrix protocol: Semantic target ERP](https://bci.report/protocols/semantic-target/#eegpt) · Chance level 50.0% · [eegpt-core-update.json](https://bci.report/data/eegpt-core-update.json)

| Method | Condition | Metric | Value | People |
| --- | --- | --- | --- | --- |
| [EEGPT](https://bci.report/methods/eegpt/) | Frozen encoder + ridge head | Balanced accuracy | 54.6% (53.3%–55.9%) | 30 |

### [EESM19 scalp subset](https://bci.report/datasets/eesm19/) · EEGPT, frozen encoder · sleep staging

Source page: [Core-matrix protocol: Sleep staging](https://bci.report/protocols/sleep-scalp/#eegpt) · Chance level 20.0% · [eegpt-core-update.json](https://bci.report/data/eegpt-core-update.json)

| Method | Condition | Metric | Value | People |
| --- | --- | --- | --- | --- |
| [EEGPT](https://bci.report/methods/eegpt/) | Frozen encoder + ridge head | Balanced accuracy | 75.5% (73.9%–77.1%) | 20 |

### [ds005342](https://bci.report/datasets/ds005342/) · EEGPT, frozen encoder · idle & command

Source page: [Core-matrix protocol: Idle & command](https://bci.report/protocols/idle/#eegpt) · [eegpt-core-update.json](https://bci.report/data/eegpt-core-update.json)

| Method | Condition | Metric | Value | People |
| --- | --- | --- | --- | --- |
| [EEGPT](https://bci.report/methods/eegpt/) | Frozen encoder + linear head | Commands detected ≤3 s | 7 / 60 — 1 of 4 people always abstained. | 4 |
| [EEGPT](https://bci.report/methods/eegpt/) | Frozen encoder + linear head | Idle false activations | 2 / 60 | 4 |
| [EEGPT](https://bci.report/methods/eegpt/) | Frozen encoder + linear head | Window balanced accuracy | 57.2% | 4 |
| [EEGPT](https://bci.report/methods/eegpt/) | Frozen encoder + linear head | Window AUROC | 0.780 | 4 |

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 →](https://bci.report/methods/) · [All datasets →](https://bci.report/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) ↗](https://doi.org/10.52202/079017-1239)
- 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 →](https://bci.report/topics/pilot-studies/#orthosis)

## 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.

| Dataset | Protocols | Statement | Source |
| --- | --- | --- | --- |
| [ds003810 Motor Imagery vs Rest (low-cost EEG; Peterson et al.)](https://doi.org/10.18112/openneuro.ds003810.v2.0.2) | [Motor imagery & rest](https://bci.report/protocols/mi-rest/) | not in the authors' published pretraining list (checked 2026-10-12) | [source ↗](https://papers.neurips.cc/paper_files/paper/2024/file/4540d267eeec4e5dbd9dae9448f0b739-Paper-Conference.pdf) · [source ↗](https://github.com/BINE022/EEGPT/tree/ea7282f698c406cd423ccbedbe9960853761144c/datasets/pretrain) · [source ↗](https://doi.org/10.18112/openneuro.ds003810.v2.0.2) |
| [EEGMAT (PhysioNet EEG During Mental Arithmetic Tasks; Zyma et al. 2019)](https://physionet.org/content/eegmat/1.0.0/) | [Arithmetic & rest](https://bci.report/protocols/arithmetic-rest/) | not in the authors' published pretraining list (checked 2026-10-12) | [source ↗](https://papers.neurips.cc/paper_files/paper/2024/file/4540d267eeec4e5dbd9dae9448f0b739-Paper-Conference.pdf) · [source ↗](https://github.com/BINE022/EEGPT/tree/ea7282f698c406cd423ccbedbe9960853761144c/datasets/pretrain) · [source ↗](https://physionet.org/content/eegmat/1.0.0/) |
| [ds006593 cBCI Matrix Multimodal Dataset (Celik et al.)](https://doi.org/10.18112/openneuro.ds006593.v1.0.0) | [P300 target ERP](https://bci.report/protocols/p300-target/) | not in the authors' published pretraining list (checked 2026-10-12) | [source ↗](https://papers.neurips.cc/paper_files/paper/2024/file/4540d267eeec4e5dbd9dae9448f0b739-Paper-Conference.pdf) · [source ↗](https://github.com/BINE022/EEGPT/tree/ea7282f698c406cd423ccbedbe9960853761144c/datasets/pretrain) · [source ↗](https://doi.org/10.18112/openneuro.ds006593.v1.0.0) |
| [ds005383 TMNRED (Bai et al. 2025, Sci. Data 12:701)](https://doi.org/10.18112/openneuro.ds005383.v1.0.0) | [Semantic target ERP](https://bci.report/protocols/semantic-target/) | not in the authors' published pretraining list (checked 2026-10-12) | [source ↗](https://papers.neurips.cc/paper_files/paper/2024/file/4540d267eeec4e5dbd9dae9448f0b739-Paper-Conference.pdf) · [source ↗](https://github.com/BINE022/EEGPT/tree/ea7282f698c406cd423ccbedbe9960853761144c/datasets/pretrain) · [source ↗](https://doi.org/10.18112/openneuro.ds005383.v1.0.0) |
| [EESM19 Ear-EEG Sleep Monitoring 2019 (OpenNeuro ds005185; Mikkelsen et al.)](https://doi.org/10.18112/openneuro.ds005185.v1.0.2) | [Sleep staging](https://bci.report/protocols/sleep-scalp/) | not in the authors' published pretraining list (checked 2026-10-12) | [source ↗](https://papers.neurips.cc/paper_files/paper/2024/file/4540d267eeec4e5dbd9dae9448f0b739-Paper-Conference.pdf) · [source ↗](https://github.com/BINE022/EEGPT/tree/ea7282f698c406cd423ccbedbe9960853761144c/datasets/pretrain) · [source ↗](https://doi.org/10.18112/openneuro.ds005185.v1.0.2) |
| [BETA 40-target SSVEP (Liu et al. 2020, Front. Neurosci. 14:627)](https://figshare.com/articles/dataset/The_BETA_database/12264401) | [SSVEP · 8 channels](https://bci.report/protocols/beta-8ch/) · [SSVEP · 4 channels](https://bci.report/protocols/beta-4ch/) | not in the authors' published pretraining list (checked 2026-10-12) | [source ↗](https://papers.neurips.cc/paper_files/paper/2024/file/4540d267eeec4e5dbd9dae9448f0b739-Paper-Conference.pdf) · [source ↗](https://github.com/BINE022/EEGPT/tree/ea7282f698c406cd423ccbedbe9960853761144c/datasets/pretrain) · [source ↗](https://doi.org/10.3389/fnins.2020.00627) |
| [ds005342 EEG offline/online MI for standing and sitting (Triana-Guzman et al.)](https://doi.org/10.18112/openneuro.ds005342.v1.0.3) | [Idle & command](https://bci.report/protocols/idle/) | not in the authors' published pretraining list (checked 2026-10-12) | [source ↗](https://papers.neurips.cc/paper_files/paper/2024/file/4540d267eeec4e5dbd9dae9448f0b739-Paper-Conference.pdf) · [source ↗](https://github.com/BINE022/EEGPT/tree/ea7282f698c406cd423ccbedbe9960853761144c/datasets/pretrain) · [source ↗](https://doi.org/10.18112/openneuro.ds005342.v1.0.3) |

**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`](https://bci.report/releases/#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](https://doi.org/10.5281/zenodo.23123296). [BibTeX for the site and its releases →](https://bci.report/api/#cite-heading) · [CITATION.cff ↗](https://raw.githubusercontent.com/twu3202/bci-report/main/CITATION.cff)

---
Markdown copy of https://bci.report/methods/eegpt/, generated from the published page. Figures are aggregate results; terms of use: https://bci.report/data-use/
