Braindecode 1.3.0.dev167809764__tar.gz → 1.3.0.dev168090315__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {braindecode-1.3.0.dev167809764/braindecode.egg-info → braindecode-1.3.0.dev168090315}/PKG-INFO +7 -10
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/datautil/util.py +8 -9
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/__init__.py +2 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/atcnet.py +1 -1
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/attentionbasenet.py +1 -1
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/attn_sleep.py +1 -1
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/bendr.py +1 -1
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/biot.py +2 -2
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/config.py +21 -18
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/ctnet.py +1 -1
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/eegconformer.py +1 -1
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/labram.py +1 -1
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/luna.py +1 -1
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/medformer.py +1 -1
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/msvtnet.py +1 -1
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/patchedtransformer.py +2 -2
- braindecode-1.3.0.dev168090315/braindecode/models/reve.py +813 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/signal_jepa.py +4 -4
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/sstdpn.py +1 -1
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/summary.csv +18 -17
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/util.py +10 -0
- braindecode-1.3.0.dev168090315/braindecode/version.py +1 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315/braindecode.egg-info}/PKG-INFO +7 -10
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode.egg-info/SOURCES.txt +1 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode.egg-info/requires.txt +6 -9
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/docs/api.rst +3 -2
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/docs/conf.py +8 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/docs/models/categorization/attention.rst +5 -5
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/docs/models/categorization/lbm.rst +5 -5
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/docs/models/models_categorization.rst +8 -8
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/docs/models/models_table.rst +2 -2
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/docs/whats_new.rst +10 -4
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/pyproject.toml +11 -14
- braindecode-1.3.0.dev167809764/braindecode/version.py +0 -1
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/LICENSE.txt +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/MANIFEST.in +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/NOTICE.txt +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/README.rst +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/__init__.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/augmentation/__init__.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/augmentation/base.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/augmentation/functional.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/augmentation/transforms.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/classifier.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/datasets/__init__.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/datasets/base.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/datasets/bbci.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/datasets/bcicomp.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/datasets/bids.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/datasets/chb_mit.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/datasets/experimental.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/datasets/hub.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/datasets/hub_validation.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/datasets/mne.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/datasets/moabb.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/datasets/nmt.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/datasets/registry.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/datasets/siena.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/datasets/sleep_physio_challe_18.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/datasets/sleep_physionet.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/datasets/tuh.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/datasets/utils.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/datasets/xy.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/datautil/__init__.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/datautil/channel_utils.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/datautil/hub_formats.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/datautil/serialization.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/eegneuralnet.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/functional/__init__.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/functional/functions.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/functional/initialization.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/base.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/contrawr.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/deep4.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/deepsleepnet.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/eeginception_erp.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/eeginception_mi.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/eegitnet.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/eegminer.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/eegnet.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/eegnex.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/eegsimpleconv.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/eegsym.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/eegtcnet.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/fbcnet.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/fblightconvnet.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/fbmsnet.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/hybrid.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/ifnet.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/sccnet.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/shallow_fbcsp.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/sinc_shallow.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/sleep_stager_blanco_2020.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/sleep_stager_chambon_2018.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/sparcnet.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/syncnet.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/tcn.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/tidnet.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/tsinception.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/usleep.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/modules/__init__.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/modules/activation.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/modules/attention.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/modules/blocks.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/modules/convolution.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/modules/filter.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/modules/layers.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/modules/linear.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/modules/parametrization.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/modules/stats.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/modules/util.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/modules/wrapper.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/preprocessing/__init__.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/preprocessing/eegprep_preprocess.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/preprocessing/mne_preprocess.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/preprocessing/preprocess.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/preprocessing/util.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/preprocessing/windowers.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/regressor.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/samplers/__init__.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/samplers/base.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/samplers/ssl.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/training/__init__.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/training/callbacks.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/training/losses.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/training/scoring.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/util.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/visualization/__init__.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/visualization/confusion_matrices.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/visualization/gradients.py +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode.egg-info/dependency_links.txt +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode.egg-info/top_level.txt +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/docs/Makefile +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/docs/_templates/autosummary/class.rst +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/docs/_templates/autosummary/function.rst +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/docs/cite.rst +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/docs/help.rst +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/docs/index.rst +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/docs/install/install.rst +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/docs/install/install_pip.rst +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/docs/install/install_source.rst +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/docs/models/categorization/channel.rst +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/docs/models/categorization/convolution.rst +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/docs/models/categorization/filterbank.rst +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/docs/models/categorization/gnn.rst +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/docs/models/categorization/interpretable.rst +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/docs/models/categorization/recurrent.rst +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/docs/models/categorization/spd.rst +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/docs/models/models.rst +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/docs/models/models_visualization.rst +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/docs/sg_execution_times.rst +0 -0
- {braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/setup.cfg +0 -0
{braindecode-1.3.0.dev167809764/braindecode.egg-info → braindecode-1.3.0.dev168090315}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: braindecode
|
|
3
|
-
Version: 1.3.0.
|
|
3
|
+
Version: 1.3.0.dev168090315
|
|
4
4
|
Summary: Deep learning software to decode EEG, ECG or MEG signals
|
|
5
5
|
Author-email: Robin Tibor Schirrmeister <robintibor@gmail.com>, Bruno Aristimunha Pinto <b.aristimunha@gmail.com>, Alexandre Gramfort <agramfort@meta.com>
|
|
6
6
|
Maintainer-email: Alexandre Gramfort <agramfort@meta.com>, Bruno Aristimunha Pinto <b.aristimunha@gmail.com>, Robin Tibor Schirrmeister <robintibor@gmail.com>
|
|
@@ -22,17 +22,12 @@ Requires-Python: >=3.11
|
|
|
22
22
|
Description-Content-Type: text/x-rst
|
|
23
23
|
License-File: LICENSE.txt
|
|
24
24
|
License-File: NOTICE.txt
|
|
25
|
+
Requires-Dist: torch>=2.2
|
|
26
|
+
Requires-Dist: torchaudio>=2.0
|
|
25
27
|
Requires-Dist: mne>=1.11.0
|
|
26
28
|
Requires-Dist: mne_bids>=0.16
|
|
27
|
-
Requires-Dist: numpy
|
|
28
|
-
Requires-Dist: pandas
|
|
29
|
-
Requires-Dist: scipy
|
|
30
|
-
Requires-Dist: matplotlib
|
|
31
29
|
Requires-Dist: h5py
|
|
32
30
|
Requires-Dist: skorch>=1.3.0
|
|
33
|
-
Requires-Dist: torch>=2.0
|
|
34
|
-
Requires-Dist: torchaudio>=2.0
|
|
35
|
-
Requires-Dist: einops
|
|
36
31
|
Requires-Dist: joblib
|
|
37
32
|
Requires-Dist: torchinfo
|
|
38
33
|
Requires-Dist: wfdb
|
|
@@ -40,7 +35,7 @@ Requires-Dist: linear_attention_transformer
|
|
|
40
35
|
Requires-Dist: docstring_inheritance
|
|
41
36
|
Requires-Dist: rotary_embedding_torch
|
|
42
37
|
Provides-Extra: moabb
|
|
43
|
-
Requires-Dist: moabb>=1.4.
|
|
38
|
+
Requires-Dist: moabb>=1.4.3; extra == "moabb"
|
|
44
39
|
Provides-Extra: eegprep
|
|
45
40
|
Requires-Dist: eegprep[eeglabio]>=0.2.23; extra == "eegprep"
|
|
46
41
|
Provides-Extra: hub
|
|
@@ -52,8 +47,9 @@ Requires-Dist: pytest-cov; extra == "tests"
|
|
|
52
47
|
Requires-Dist: codecov; extra == "tests"
|
|
53
48
|
Requires-Dist: pytest_cases; extra == "tests"
|
|
54
49
|
Requires-Dist: mypy; extra == "tests"
|
|
50
|
+
Requires-Dist: transformers>=4.57.0; extra == "tests"
|
|
55
51
|
Provides-Extra: typing
|
|
56
|
-
Requires-Dist:
|
|
52
|
+
Requires-Dist: exca==0.4; extra == "typing"
|
|
57
53
|
Requires-Dist: numpydantic>=1.7; extra == "typing"
|
|
58
54
|
Provides-Extra: docs
|
|
59
55
|
Requires-Dist: sphinx_gallery; extra == "docs"
|
|
@@ -75,6 +71,7 @@ Requires-Dist: openneuro-py; extra == "docs"
|
|
|
75
71
|
Requires-Dist: plotly; extra == "docs"
|
|
76
72
|
Requires-Dist: shap; extra == "docs"
|
|
77
73
|
Requires-Dist: nbformat; extra == "docs"
|
|
74
|
+
Requires-Dist: transformers; extra == "docs"
|
|
78
75
|
Provides-Extra: all
|
|
79
76
|
Requires-Dist: braindecode[moabb]; extra == "all"
|
|
80
77
|
Requires-Dist: braindecode[tests]; extra == "all"
|
{braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/datautil/util.py
RENAMED
|
@@ -11,8 +11,7 @@ from skorch.helper import SliceDataset
|
|
|
11
11
|
from skorch.utils import is_dataset
|
|
12
12
|
|
|
13
13
|
from braindecode.datasets.base import BaseConcatDataset, WindowsDataset
|
|
14
|
-
|
|
15
|
-
# from braindecode.models.util import SigArgName
|
|
14
|
+
from braindecode.models.util import SigArgName
|
|
16
15
|
|
|
17
16
|
log = logging.getLogger(__name__)
|
|
18
17
|
|
|
@@ -79,16 +78,16 @@ def infer_signal_properties(
|
|
|
79
78
|
y=None,
|
|
80
79
|
mode: Literal["classification", "regression"] = "classification",
|
|
81
80
|
classes: list | None = None,
|
|
82
|
-
) -> dict[
|
|
81
|
+
) -> dict[SigArgName, Any]:
|
|
83
82
|
"""Infers signal properties from the data.
|
|
84
83
|
|
|
85
84
|
The extracted signal properties are:
|
|
86
85
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
86
|
+
+ n_chans: number of channels
|
|
87
|
+
+ n_times: number of time points
|
|
88
|
+
+ n_outputs: number of outputs
|
|
89
|
+
+ chs_info: channel information
|
|
90
|
+
+ sfreq: sampling frequency
|
|
92
91
|
|
|
93
92
|
The returned dictionary can serve as kwargs for model initialization.
|
|
94
93
|
|
|
@@ -111,7 +110,7 @@ def infer_signal_properties(
|
|
|
111
110
|
Dictionary with signal-properties. Can serve as kwargs for model
|
|
112
111
|
initialization.
|
|
113
112
|
"""
|
|
114
|
-
signal_kwargs =
|
|
113
|
+
signal_kwargs: dict[SigArgName, Any] = {}
|
|
115
114
|
# Using shape to work both with torch.tensor and numpy.array:
|
|
116
115
|
if (
|
|
117
116
|
isinstance(X, mne.BaseEpochs)
|
{braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/__init__.py
RENAMED
|
@@ -32,6 +32,7 @@ from .luna import LUNA
|
|
|
32
32
|
from .medformer import MEDFormer
|
|
33
33
|
from .msvtnet import MSVTNet
|
|
34
34
|
from .patchedtransformer import PBT
|
|
35
|
+
from .reve import REVE
|
|
35
36
|
from .sccnet import SCCNet
|
|
36
37
|
from .shallow_fbcsp import ShallowFBCSPNet
|
|
37
38
|
from .signal_jepa import (
|
|
@@ -93,6 +94,7 @@ __all__ = [
|
|
|
93
94
|
"MEDFormer",
|
|
94
95
|
"MSVTNet",
|
|
95
96
|
"PBT",
|
|
97
|
+
"REVE",
|
|
96
98
|
"SCCNet",
|
|
97
99
|
"ShallowFBCSPNet",
|
|
98
100
|
"SignalJEPA",
|
{braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/atcnet.py
RENAMED
|
@@ -15,7 +15,7 @@ from braindecode.modules import CausalConv1d, Ensure4d, MaxNormLinear
|
|
|
15
15
|
class ATCNet(EEGModuleMixin, nn.Module):
|
|
16
16
|
"""ATCNet from Altaheri et al. (2022) [1]_.
|
|
17
17
|
|
|
18
|
-
:bdg-success:`Convolution` :bdg-secondary:`Recurrent` :bdg-info:`
|
|
18
|
+
:bdg-success:`Convolution` :bdg-secondary:`Recurrent` :bdg-info:`Attention/Transformer`
|
|
19
19
|
|
|
20
20
|
.. figure:: https://user-images.githubusercontent.com/25565236/185449791-e8539453-d4fa-41e1-865a-2cf7e91f60ef.png
|
|
21
21
|
:align: center
|
|
@@ -26,7 +26,7 @@ from braindecode.modules.attention import (
|
|
|
26
26
|
class AttentionBaseNet(EEGModuleMixin, nn.Module):
|
|
27
27
|
"""AttentionBaseNet from Wimpff M et al. (2023) [Martin2023]_.
|
|
28
28
|
|
|
29
|
-
:bdg-success:`Convolution` :bdg-info:`
|
|
29
|
+
:bdg-success:`Convolution` :bdg-info:`Attention/Transformer`
|
|
30
30
|
|
|
31
31
|
.. figure:: https://content.cld.iop.org/journals/1741-2552/21/3/036020/revision2/jnead48b9f2_hr.jpg
|
|
32
32
|
:align: center
|
{braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/attn_sleep.py
RENAMED
|
@@ -18,7 +18,7 @@ from braindecode.modules import CausalConv1d
|
|
|
18
18
|
class AttnSleep(EEGModuleMixin, nn.Module):
|
|
19
19
|
"""Sleep Staging Architecture from Eldele et al. (2021) [Eldele2021]_.
|
|
20
20
|
|
|
21
|
-
:bdg-success:`Convolution` :bdg-info:`
|
|
21
|
+
:bdg-success:`Convolution` :bdg-info:`Attention/Transformer`
|
|
22
22
|
|
|
23
23
|
.. figure:: https://raw.githubusercontent.com/emadeldeen24/AttnSleep/refs/heads/main/imgs/AttnSleep.png
|
|
24
24
|
:align: center
|
{braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/bendr.py
RENAMED
|
@@ -10,7 +10,7 @@ from braindecode.models.base import EEGModuleMixin
|
|
|
10
10
|
class BENDR(EEGModuleMixin, nn.Module):
|
|
11
11
|
"""BENDR (BErt-inspired Neural Data Representations) from Kostas et al. (2021) [bendr]_.
|
|
12
12
|
|
|
13
|
-
:bdg-success:`Convolution` :bdg-danger:`
|
|
13
|
+
:bdg-success:`Convolution` :bdg-danger:`Foundation Model`
|
|
14
14
|
|
|
15
15
|
.. figure:: https://www.frontiersin.org/files/Articles/653659/fnhum-15-653659-HTML/image_m/fnhum-15-653659-g001.jpg
|
|
16
16
|
:align: center
|
{braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/biot.py
RENAMED
|
@@ -11,7 +11,7 @@ from braindecode.models.base import EEGModuleMixin
|
|
|
11
11
|
class BIOT(EEGModuleMixin, nn.Module):
|
|
12
12
|
"""BIOT from Yang et al. (2023) [Yang2023]_
|
|
13
13
|
|
|
14
|
-
:bdg-danger:`
|
|
14
|
+
:bdg-danger:`Foundation Model`
|
|
15
15
|
|
|
16
16
|
.. figure:: https://braindecode.org/dev/_static/model/biot.jpg
|
|
17
17
|
:align: center
|
|
@@ -19,7 +19,7 @@ class BIOT(EEGModuleMixin, nn.Module):
|
|
|
19
19
|
|
|
20
20
|
BIOT: Cross-data Biosignal Learning in the Wild.
|
|
21
21
|
|
|
22
|
-
BIOT is a
|
|
22
|
+
BIOT is a foundation model for biosignal classification. It is
|
|
23
23
|
a wrapper around the `BIOTEncoder` and `ClassificationHead` modules.
|
|
24
24
|
|
|
25
25
|
It is designed for N-dimensional biosignal data such as EEG, ECG, etc.
|
{braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/config.py
RENAMED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import functools
|
|
2
|
-
import operator
|
|
3
1
|
from collections.abc import Callable
|
|
4
2
|
from inspect import signature
|
|
5
3
|
from types import UnionType
|
|
@@ -59,10 +57,25 @@ SIGNAL_ARGS_TYPES = {
|
|
|
59
57
|
}
|
|
60
58
|
|
|
61
59
|
|
|
60
|
+
class BaseBraindecodeModelConfig(pydantic.BaseModel): # type: ignore
|
|
61
|
+
def create_instance(self) -> EEGModuleMixin:
|
|
62
|
+
model_cls = models_dict[self.model_name_]
|
|
63
|
+
kwargs = self.model_dump(mode="python", exclude={"model_name_"})
|
|
64
|
+
if kwargs.get("n_chans") is not None and kwargs.get("chs_info") is not None:
|
|
65
|
+
kwargs.pop("n_chans")
|
|
66
|
+
if (
|
|
67
|
+
kwargs.get("n_times") is not None
|
|
68
|
+
and kwargs.get("input_window_seconds") is not None
|
|
69
|
+
and kwargs.get("sfreq") is not None
|
|
70
|
+
):
|
|
71
|
+
kwargs.pop("n_times")
|
|
72
|
+
return model_cls(**kwargs)
|
|
73
|
+
|
|
74
|
+
|
|
62
75
|
def make_model_config(
|
|
63
76
|
model_class: type[EEGModuleMixin],
|
|
64
77
|
required: list[SigArgName],
|
|
65
|
-
):
|
|
78
|
+
) -> type[BaseBraindecodeModelConfig]:
|
|
66
79
|
"""Create a pydantic model config for a given model class.
|
|
67
80
|
|
|
68
81
|
Parameters
|
|
@@ -84,18 +97,6 @@ def make_model_config(
|
|
|
84
97
|
)
|
|
85
98
|
|
|
86
99
|
# ironically, we need to ignore the type here to have the soft dependency.
|
|
87
|
-
class BaseBraindecodeModelConfig(pydantic.BaseModel): # type: ignore
|
|
88
|
-
def create_instance(self) -> EEGModuleMixin:
|
|
89
|
-
kwargs = self.model_dump(mode="python", exclude={"model_name_"})
|
|
90
|
-
if kwargs.get("n_chans") is not None and kwargs.get("chs_info") is not None:
|
|
91
|
-
kwargs.pop("n_chans")
|
|
92
|
-
if (
|
|
93
|
-
kwargs.get("n_times") is not None
|
|
94
|
-
and kwargs.get("input_window_seconds") is not None
|
|
95
|
-
and kwargs.get("sfreq") is not None
|
|
96
|
-
):
|
|
97
|
-
kwargs.pop("n_times")
|
|
98
|
-
return model_class(**kwargs)
|
|
99
100
|
|
|
100
101
|
@pydantic.model_validator(mode="before")
|
|
101
102
|
def validate_signal_params(cls, data: Any):
|
|
@@ -209,7 +210,7 @@ __all__ = ["make_model_config"]
|
|
|
209
210
|
if not pydantic:
|
|
210
211
|
pass
|
|
211
212
|
else:
|
|
212
|
-
models_configs = []
|
|
213
|
+
models_configs: list[type[BaseBraindecodeModelConfig]] = []
|
|
213
214
|
for model_name, req, _ in models_mandatory_parameters:
|
|
214
215
|
model_cls = models_dict[model_name]
|
|
215
216
|
model_cfg = make_model_config(model_cls, req)
|
|
@@ -218,8 +219,10 @@ else:
|
|
|
218
219
|
models_configs.append(model_cfg)
|
|
219
220
|
|
|
220
221
|
BraindecodeModelConfig = Annotated[ # type: ignore
|
|
221
|
-
|
|
222
|
-
pydantic.Field(
|
|
222
|
+
Union[tuple(models_configs)],
|
|
223
|
+
pydantic.Field(
|
|
224
|
+
discriminator="model_name_", description="Braindecode model configuration"
|
|
225
|
+
),
|
|
223
226
|
]
|
|
224
227
|
|
|
225
228
|
# # Example usage:
|
{braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/ctnet.py
RENAMED
|
@@ -27,7 +27,7 @@ from braindecode.modules import (
|
|
|
27
27
|
class CTNet(EEGModuleMixin, nn.Module):
|
|
28
28
|
"""CTNet from Zhao, W et al (2024) [ctnet]_.
|
|
29
29
|
|
|
30
|
-
:bdg-success:`Convolution` :bdg-info:`
|
|
30
|
+
:bdg-success:`Convolution` :bdg-info:`Attention/Transformer`
|
|
31
31
|
|
|
32
32
|
A Convolutional Transformer Network for EEG-Based Motor Imagery Classification
|
|
33
33
|
|
{braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/eegconformer.py
RENAMED
|
@@ -14,7 +14,7 @@ from braindecode.modules import FeedForwardBlock, MultiHeadAttention
|
|
|
14
14
|
class EEGConformer(EEGModuleMixin, nn.Module):
|
|
15
15
|
"""EEG Conformer from Song et al. (2022) [song2022]_.
|
|
16
16
|
|
|
17
|
-
:bdg-success:`Convolution` :bdg-info:`
|
|
17
|
+
:bdg-success:`Convolution` :bdg-info:`Attention/Transformer`
|
|
18
18
|
|
|
19
19
|
.. figure:: https://raw.githubusercontent.com/eeyhsong/EEG-Conformer/refs/heads/main/visualization/Fig1.png
|
|
20
20
|
:align: center
|
{braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/labram.py
RENAMED
|
@@ -23,7 +23,7 @@ from braindecode.modules import MLP, DropPath
|
|
|
23
23
|
class Labram(EEGModuleMixin, nn.Module):
|
|
24
24
|
"""Labram from Jiang, W B et al (2024) [Jiang2024]_.
|
|
25
25
|
|
|
26
|
-
:bdg-success:`Convolution` :bdg-danger:`
|
|
26
|
+
:bdg-success:`Convolution` :bdg-danger:`Foundation Model`
|
|
27
27
|
|
|
28
28
|
.. figure:: https://arxiv.org/html/2405.18765v1/x1.png
|
|
29
29
|
:align: center
|
{braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/luna.py
RENAMED
|
@@ -29,7 +29,7 @@ from braindecode.modules.layers import DropPath
|
|
|
29
29
|
class LUNA(EEGModuleMixin, nn.Module):
|
|
30
30
|
"""LUNA from Döner et al. [LUNA]_.
|
|
31
31
|
|
|
32
|
-
:bdg-success:`Convolution` :bdg-danger:`
|
|
32
|
+
:bdg-success:`Convolution` :bdg-danger:`Foundation Model` :bdg-dark-line:`Channel`
|
|
33
33
|
|
|
34
34
|
.. figure:: https://arxiv.org/html/2510.22257v1/x1.png
|
|
35
35
|
:align: center
|
{braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/medformer.py
RENAMED
|
@@ -20,7 +20,7 @@ from braindecode.models.base import EEGModuleMixin
|
|
|
20
20
|
class MEDFormer(EEGModuleMixin, nn.Module):
|
|
21
21
|
r"""Medformer from Wang et al. (2024) [Medformer2024]_.
|
|
22
22
|
|
|
23
|
-
:bdg-success:`Convolution` :bdg-danger:`
|
|
23
|
+
:bdg-success:`Convolution` :bdg-danger:`Foundation Model`
|
|
24
24
|
|
|
25
25
|
.. figure:: https://raw.githubusercontent.com/DL4mHealth/Medformer/refs/heads/main/figs/medformer_architecture.png
|
|
26
26
|
:align: center
|
{braindecode-1.3.0.dev167809764 → braindecode-1.3.0.dev168090315}/braindecode/models/msvtnet.py
RENAMED
|
@@ -13,7 +13,7 @@ from braindecode.models.base import EEGModuleMixin
|
|
|
13
13
|
class MSVTNet(EEGModuleMixin, nn.Module):
|
|
14
14
|
"""MSVTNet model from Liu K et al (2024) from [msvt2024]_.
|
|
15
15
|
|
|
16
|
-
:bdg-success:`Convolution` :bdg-secondary:`Recurrent` :bdg-info:`
|
|
16
|
+
:bdg-success:`Convolution` :bdg-secondary:`Recurrent` :bdg-info:`Attention/Transformer`
|
|
17
17
|
|
|
18
18
|
This model implements a multi-scale convolutional transformer network
|
|
19
19
|
for EEG signal classification, as described in [msvt2024]_.
|
|
@@ -16,7 +16,7 @@ from braindecode.models.base import EEGModuleMixin
|
|
|
16
16
|
class PBT(EEGModuleMixin, nn.Module):
|
|
17
17
|
r"""Patched Brain Transformer (PBT) model from Klein et al. (2025) [pbt]_.
|
|
18
18
|
|
|
19
|
-
:bdg-danger:`
|
|
19
|
+
:bdg-danger:`Foundation Model`
|
|
20
20
|
|
|
21
21
|
This implementation was based in https://github.com/timonkl/PatchedBrainTransformer/
|
|
22
22
|
|
|
@@ -136,7 +136,7 @@ class PBT(EEGModuleMixin, nn.Module):
|
|
|
136
136
|
|
|
137
137
|
.. warning::
|
|
138
138
|
|
|
139
|
-
**Important:** As the other
|
|
139
|
+
**Important:** As the other Foundation Models in Braindecode, :class:`PBT` is
|
|
140
140
|
designed for large-scale pre-training and fine-tuning. Training from
|
|
141
141
|
scratch on small datasets may lead to suboptimal results. Cross-Dataset
|
|
142
142
|
pre-training and subsequent fine-tuning is recommended to leverage the
|