From 131c1f1f3234a4737d73ec94d5f1b5ae0959e8dd Mon Sep 17 00:00:00 2001 From: Pierre Guetschel Date: Mon, 1 Jun 2026 16:17:44 +0200 Subject: [PATCH 1/2] add EEGPT --- open_eeg_bench/backbone_utils.py | 20 ++++++++++++++++++++ open_eeg_bench/default_configs/backbones.py | 15 +++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 open_eeg_bench/backbone_utils.py diff --git a/open_eeg_bench/backbone_utils.py b/open_eeg_bench/backbone_utils.py new file mode 100644 index 0000000..2fc3a3a --- /dev/null +++ b/open_eeg_bench/backbone_utils.py @@ -0,0 +1,20 @@ +import numpy as np +from braindecode.models import EEGPT, InterpolatedModel +from braindecode.models.eegpt import EEGPT_CHANNELS +from mne.channels import make_standard_montage + +montage = make_standard_montage("standard_1020") +ch_pos = { + ch.upper(): (ch, loc) for ch, loc in montage.get_positions()["ch_pos"].items() +} +_EEGPT_TARGET_CHS_INFO = [ + { + "ch_name": ch_pos[ch.upper()][0], + "kind": "eeg", + "loc": ch_pos[ch.upper()][1], + } + for ch in EEGPT_CHANNELS +] +InterpolatedEEGPT = InterpolatedModel( + EEGPT, _EEGPT_TARGET_CHS_INFO, name="InterpolatedEEGPT" +) diff --git a/open_eeg_bench/default_configs/backbones.py b/open_eeg_bench/default_configs/backbones.py index eb0b14c..734b758 100644 --- a/open_eeg_bench/default_configs/backbones.py +++ b/open_eeg_bench/default_configs/backbones.py @@ -84,6 +84,20 @@ def reve(**overrides) -> PretrainedBackbone: return PretrainedBackbone(**defaults) +def eegpt(**overrides) -> PretrainedBackbone: + defaults = dict( + # model_cls="braindecode.models.EEGPT", + # model_cls="braindecode.models.InterpolatedEEGPT", + model_cls="open_eeg_bench.backbone_utils.InterpolatedEEGPT", + model_kwargs={"chan_proj_type": "none", "n_chans_target": 19}, + peft_ff_modules=["qkv", "fc1", "fc2"], + normalization=WindowZScore(), + hub_repo="braindecode/eegpt-pretrained", + ) + defaults.update(overrides) + return PretrainedBackbone(**defaults) + + ALL_BACKBONES = { "biot": biot, "labram": labram, @@ -91,4 +105,5 @@ def reve(**overrides) -> PretrainedBackbone: "cbramod": cbramod, "signal_jepa": signal_jepa, "reve": reve, + "eegpt": eegpt, } From 03e090e47b18ae7280b5914555940692054a0f00 Mon Sep 17 00:00:00 2001 From: Pierre Guetschel Date: Tue, 2 Jun 2026 11:13:53 +0200 Subject: [PATCH 2/2] Changelog --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d78710f..b9c7e71 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Added +- Add the EEGPT backbone ([#40](https://github.com/braindecode/OpenEEGBench/pull/40)). ## [0.5.0] - 2026-05-28