Braindecode 1.2.0.dev176281713__tar.gz → 1.2.0.dev180217551__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.2.0.dev176281713/braindecode.egg-info → braindecode-1.2.0.dev180217551}/PKG-INFO +1 -5
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/__init__.py +2 -1
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/attentionbasenet.py +4 -5
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/eegnex.py +7 -2
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/summary.csv +41 -40
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/util.py +1 -0
- braindecode-1.2.0.dev180217551/braindecode/version.py +1 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551/braindecode.egg-info}/PKG-INFO +1 -5
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode.egg-info/SOURCES.txt +2 -6
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode.egg-info/requires.txt +0 -4
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/docs/api.rst +7 -6
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/docs/conf.py +7 -22
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/docs/index.rst +1 -1
- braindecode-1.2.0.dev180217551/docs/models_summary.rst +134 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/docs/whats_new.rst +0 -3
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/pyproject.toml +1 -5
- braindecode-1.2.0.dev176281713/braindecode/datasets/experimental.py +0 -218
- braindecode-1.2.0.dev176281713/braindecode/version.py +0 -1
- braindecode-1.2.0.dev176281713/docs/models/models.rst +0 -76
- braindecode-1.2.0.dev176281713/docs/models/models_categorization.rst +0 -174
- braindecode-1.2.0.dev176281713/docs/models/models_table.rst +0 -139
- braindecode-1.2.0.dev176281713/docs/models/models_visualization.rst +0 -21
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/LICENSE.txt +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/MANIFEST.in +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/NOTICE.txt +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/README.rst +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/__init__.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/augmentation/__init__.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/augmentation/base.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/augmentation/functional.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/augmentation/transforms.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/classifier.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/datasets/__init__.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/datasets/base.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/datasets/bbci.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/datasets/bcicomp.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/datasets/bids.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/datasets/mne.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/datasets/moabb.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/datasets/nmt.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/datasets/sleep_physio_challe_18.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/datasets/sleep_physionet.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/datasets/tuh.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/datasets/xy.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/datautil/__init__.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/datautil/serialization.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/datautil/util.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/eegneuralnet.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/functional/__init__.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/functional/functions.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/functional/initialization.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/atcnet.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/base.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/biot.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/contrawr.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/ctnet.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/deep4.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/deepsleepnet.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/eegconformer.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/eeginception_erp.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/eeginception_mi.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/eegitnet.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/eegminer.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/eegnet.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/eegresnet.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/eegsimpleconv.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/eegtcnet.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/fbcnet.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/fblightconvnet.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/fbmsnet.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/hybrid.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/ifnet.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/labram.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/msvtnet.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/sccnet.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/shallow_fbcsp.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/signal_jepa.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/sinc_shallow.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/sleep_stager_blanco_2020.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/sleep_stager_chambon_2018.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/sleep_stager_eldele_2021.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/sparcnet.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/syncnet.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/tcn.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/tidnet.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/tsinception.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/usleep.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/modules/__init__.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/modules/activation.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/modules/attention.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/modules/blocks.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/modules/convolution.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/modules/filter.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/modules/layers.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/modules/linear.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/modules/parametrization.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/modules/stats.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/modules/util.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/modules/wrapper.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/preprocessing/__init__.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/preprocessing/mne_preprocess.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/preprocessing/preprocess.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/preprocessing/windowers.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/regressor.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/samplers/__init__.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/samplers/base.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/samplers/ssl.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/training/__init__.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/training/callbacks.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/training/losses.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/training/scoring.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/util.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/visualization/__init__.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/visualization/confusion_matrices.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/visualization/gradients.py +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode.egg-info/dependency_links.txt +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode.egg-info/top_level.txt +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/docs/Makefile +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/docs/_templates/autosummary/class.rst +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/docs/_templates/autosummary/function.rst +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/docs/cite.rst +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/docs/help.rst +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/docs/install/install.rst +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/docs/install/install_pip.rst +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/docs/install/install_source.rst +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/docs/sg_execution_times.rst +0 -0
- {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/setup.cfg +0 -0
{braindecode-1.2.0.dev176281713/braindecode.egg-info → braindecode-1.2.0.dev180217551}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: braindecode
|
|
3
|
-
Version: 1.2.0.
|
|
3
|
+
Version: 1.2.0.dev180217551
|
|
4
4
|
Summary: Deep learning software to decode EEG, ECG or MEG signals
|
|
5
5
|
Author-email: Robin Tibor Schirrmeister <robintibor@gmail.com>
|
|
6
6
|
Maintainer-email: Alexandre Gramfort <agramfort@meta.com>, Bruno Aristimunha Pinto <b.aristimunha@gmail.com>, Robin Tibor Schirrmeister <robintibor@gmail.com>
|
|
@@ -49,9 +49,6 @@ Requires-Dist: mypy; extra == "tests"
|
|
|
49
49
|
Provides-Extra: docs
|
|
50
50
|
Requires-Dist: sphinx_gallery; extra == "docs"
|
|
51
51
|
Requires-Dist: sphinx_rtd_theme; extra == "docs"
|
|
52
|
-
Requires-Dist: sphinx-autodoc-typehints; extra == "docs"
|
|
53
|
-
Requires-Dist: sphinx-autobuild; extra == "docs"
|
|
54
|
-
Requires-Dist: sphinxcontrib-bibtex; extra == "docs"
|
|
55
52
|
Requires-Dist: pydata_sphinx_theme; extra == "docs"
|
|
56
53
|
Requires-Dist: numpydoc; extra == "docs"
|
|
57
54
|
Requires-Dist: memory_profiler; extra == "docs"
|
|
@@ -62,7 +59,6 @@ Requires-Dist: lightning; extra == "docs"
|
|
|
62
59
|
Requires-Dist: seaborn; extra == "docs"
|
|
63
60
|
Requires-Dist: pre-commit; extra == "docs"
|
|
64
61
|
Requires-Dist: openneuro-py; extra == "docs"
|
|
65
|
-
Requires-Dist: plotly; extra == "docs"
|
|
66
62
|
Provides-Extra: all
|
|
67
63
|
Requires-Dist: braindecode[docs,moabb,tests]; extra == "all"
|
|
68
64
|
Dynamic: license-file
|
{braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/__init__.py
RENAMED
|
@@ -15,7 +15,7 @@ from .eeginception_erp import EEGInceptionERP
|
|
|
15
15
|
from .eeginception_mi import EEGInceptionMI
|
|
16
16
|
from .eegitnet import EEGITNet
|
|
17
17
|
from .eegminer import EEGMiner
|
|
18
|
-
from .eegnet import EEGNetv4
|
|
18
|
+
from .eegnet import EEGNetv1, EEGNetv4
|
|
19
19
|
from .eegnex import EEGNeX
|
|
20
20
|
from .eegresnet import EEGResNet
|
|
21
21
|
from .eegsimpleconv import EEGSimpleConv
|
|
@@ -65,6 +65,7 @@ __all__ = [
|
|
|
65
65
|
"EEGInceptionMI",
|
|
66
66
|
"EEGITNet",
|
|
67
67
|
"EEGMiner",
|
|
68
|
+
"EEGNetv1",
|
|
68
69
|
"EEGNetv4",
|
|
69
70
|
"EEGNeX",
|
|
70
71
|
"EEGResNet",
|
|
@@ -24,7 +24,7 @@ from braindecode.modules.attention import (
|
|
|
24
24
|
|
|
25
25
|
|
|
26
26
|
class AttentionBaseNet(EEGModuleMixin, nn.Module):
|
|
27
|
-
"""
|
|
27
|
+
"""
|
|
28
28
|
|
|
29
29
|
:bdg-success:`Convolution` :bdg-info:`Small Attention`
|
|
30
30
|
|
|
@@ -165,11 +165,10 @@ class AttentionBaseNet(EEGModuleMixin, nn.Module):
|
|
|
165
165
|
Notes
|
|
166
166
|
-----
|
|
167
167
|
- Sequence length after each stage is computed internally; the final classifier expects
|
|
168
|
-
|
|
168
|
+
a flattened ``ch_dim x T₂`` vector.
|
|
169
169
|
- Attention operates on *channel* dimension by design; temporal gating exists only in
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
choices are available at the [Martin2023]_ and [MartinCode]_.
|
|
170
|
+
specific variants (CBAM/CAT).
|
|
171
|
+
|
|
173
172
|
.. versionadded:: 0.9
|
|
174
173
|
|
|
175
174
|
Parameters
|
{braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/eegnex.py
RENAMED
|
@@ -129,8 +129,7 @@ class EEGNeX(EEGModuleMixin, nn.Module):
|
|
|
129
129
|
-----
|
|
130
130
|
- The braindecode implementation follows the paper's conv-only design with five blocks
|
|
131
131
|
and reproduces the depthwise spatial step and dilated temporal stack. See the class
|
|
132
|
-
reference for exact kernel sizes, dilations, and pooling defaults.
|
|
133
|
-
original implementation at [EEGNexCode]_.
|
|
132
|
+
reference for exact kernel sizes, dilations, and pooling defaults.
|
|
134
133
|
|
|
135
134
|
.. versionadded:: 1.1
|
|
136
135
|
|
|
@@ -160,6 +159,12 @@ class EEGNeX(EEGModuleMixin, nn.Module):
|
|
|
160
159
|
avg_pool_block5 : tuple[int, int], optional
|
|
161
160
|
Pooling size for block 5. Default is (1, 8).
|
|
162
161
|
|
|
162
|
+
Notes
|
|
163
|
+
-----
|
|
164
|
+
This implementation is not guaranteed to be correct, has not been checked
|
|
165
|
+
by original authors, only reimplemented from the paper description and
|
|
166
|
+
source code in tensorflow [EEGNexCode]_.
|
|
167
|
+
|
|
163
168
|
References
|
|
164
169
|
----------
|
|
165
170
|
.. [eegnex] Chen, X., Teng, X., Chen, H., Pan, Y., & Geyer, P. (2024).
|
{braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/summary.csv
RENAMED
|
@@ -1,40 +1,41 @@
|
|
|
1
|
-
Model,Paradigm,Type,Freq(Hz),Hyperparameters,#Parameters,get_#Parameters
|
|
2
|
-
ATCNet,General,Classification,250,"n_chans, n_outputs, n_times",113732,"ATCNet(n_chans=22, n_outputs=4, n_times=1000)"
|
|
3
|
-
AttentionBaseNet,Motor Imagery,Classification,250,"n_chans, n_outputs, n_times",3692,"AttentionBaseNet(n_chans=22, n_outputs=4, n_times=1000)"
|
|
4
|
-
BDTCN,Normal
|
|
5
|
-
BIOT,"Sleep Staging, Epilepsy",Classification,200,"n_chans, n_outputs",3183879,"BIOT(n_chans=2, n_outputs=5, n_times=6000)"
|
|
6
|
-
ContraWR,Sleep Staging,"Classification, Embedding",125,"n_chans, n_outputs, sfreq",1160165,"ContraWR(n_chans=2, n_outputs=5, n_times=3750, emb_size=256, sfreq=125)"
|
|
7
|
-
CTNet,Motor Imagery,Classification,250,"n_chans, n_outputs, n_times",26900,"CTNet(n_chans=22, n_outputs=4, n_times=1000, n_filters_time=8, kernel_size=16, heads=2, emb_size=16)"
|
|
8
|
-
Deep4Net,Motor Imagery,Classification,250,"n_chans, n_outputs, n_times",282879,"Deep4Net(n_chans=22, n_outputs=4, n_times=1000)"
|
|
9
|
-
DeepSleepNet,Sleep Staging,Classification,256,"n_chans, n_outputs",24744837,"DeepSleepNet(n_chans=1, n_outputs=5, n_times=7680, sfreq=256)"
|
|
10
|
-
EEGConformer,General,Classification,250,"n_chans, n_outputs, n_times",789572,"EEGConformer(n_chans=22, n_outputs=4, n_times=1000)"
|
|
11
|
-
EEGInceptionERP,"ERP, SSVEP",Classification,128,"n_chans, n_outputs",14926,"EEGInceptionERP(n_chans=8, n_outputs=2, n_times=128, sfreq=128)"
|
|
12
|
-
EEGInceptionMI,Motor Imagery,Classification,250,"n_chans, n_outputs, n_times",558028,"EEGInceptionMI(n_chans=22, n_outputs=4, n_times=1000, n_convs=5, n_filters=12)"
|
|
13
|
-
EEGITNet,Motor Imagery,Classification,125,"n_chans, n_outputs, n_times",5212,"EEGITNet(n_chans=22, n_outputs=4, n_times=500)"
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
1
|
+
Model,Paradigm,Type,Freq(Hz),Hyperparameters,#Parameters,get_#Parameters
|
|
2
|
+
ATCNet,General,Classification,250,"n_chans, n_outputs, n_times",113732,"ATCNet(n_chans=22, n_outputs=4, n_times=1000)"
|
|
3
|
+
AttentionBaseNet,Motor Imagery,Classification,250,"n_chans, n_outputs, n_times",3692,"AttentionBaseNet(n_chans=22, n_outputs=4, n_times=1000)"
|
|
4
|
+
BDTCN,Normal/Abnormal,Classification,100,"n_chans, n_outputs, n_times",456502,"BDTCN(n_chans=21, n_outputs=2, n_times=6000, n_blocks=5, n_filters=55, kernel_size=16)"
|
|
5
|
+
BIOT,"Sleep Staging, Epilepsy",Classification,200,"n_chans, n_outputs",3183879,"BIOT(n_chans=2, n_outputs=5, n_times=6000)"
|
|
6
|
+
ContraWR,Sleep Staging,"Classification, Embedding",125,"n_chans, n_outputs, sfreq",1160165,"ContraWR(n_chans=2, n_outputs=5, n_times=3750, emb_size=256, sfreq=125)"
|
|
7
|
+
CTNet,Motor Imagery,Classification,250,"n_chans, n_outputs, n_times",26900,"CTNet(n_chans=22, n_outputs=4, n_times=1000, n_filters_time=8, kernel_size=16, heads=2, emb_size=16)"
|
|
8
|
+
Deep4Net,Motor Imagery,Classification,250,"n_chans, n_outputs, n_times",282879,"Deep4Net(n_chans=22, n_outputs=4, n_times=1000)"
|
|
9
|
+
DeepSleepNet,Sleep Staging,Classification,256,"n_chans, n_outputs",24744837,"DeepSleepNet(n_chans=1, n_outputs=5, n_times=7680, sfreq=256)"
|
|
10
|
+
EEGConformer,General,Classification,250,"n_chans, n_outputs, n_times",789572,"EEGConformer(n_chans=22, n_outputs=4, n_times=1000)."
|
|
11
|
+
EEGInceptionERP,"ERP, SSVEP",Classification,128,"n_chans, n_outputs",14926,"EEGInceptionERP(n_chans=8, n_outputs=2, n_times=128, sfreq=128)"
|
|
12
|
+
EEGInceptionMI,Motor Imagery,Classification,250,"n_chans, n_outputs, n_times",558028,"EEGInceptionMI(n_chans=22, n_outputs=4, n_times=1000, n_convs=5, n_filters=12)"
|
|
13
|
+
EEGITNet,Motor Imagery,Classification,125,"n_chans, n_outputs, n_times",5212,"EEGITNet(n_chans=22, n_outputs=4, n_times=500)"
|
|
14
|
+
EEGNetv1,General,Classification,128,"n_chans, n_outputs, n_times",3052,"EEGNetv1(n_chans=22, n_outputs=4, n_times=512)"
|
|
15
|
+
EEGNetv4,General,Classification,128,"n_chans, n_outputs, n_times",2484,"EEGNetv4(n_chans=22, n_outputs=4, n_times=512)"
|
|
16
|
+
EEGNeX,Motor Imagery,Classification,125,"n_chans, n_outputs, n_times",55940,"EEGNeX(n_chans=22, n_outputs=4, n_times=500)"
|
|
17
|
+
EEGMiner,Emotion Recognition,Classification,128,"n_chans, n_outputs, n_times, sfreq",7572,"EEGMiner(n_chans=62, n_outputs=2, n_times=2560, sfreq=128)"
|
|
18
|
+
EEGResNet,General,Classification,250,"n_chans, n_outputs, n_times",247484,"EEGResNet(n_chans=22, n_outputs=4, n_times=1000)"
|
|
19
|
+
EEGSimpleConv,Motor Imagery,Classification,80,"n_chans, n_outputs, sfreq",730404,"EEGSimpleConv(n_chans=22, n_outputs=4, n_times=320, sfreq=80)"
|
|
20
|
+
EEGTCNet,Motor Imagery,Classification,250,"n_chans, n_outputs",4516,"EEGTCNet(n_chans=22, n_outputs=4, n_times=1000, kern_length=32)"
|
|
21
|
+
Labram,General,"Classification, Embedding",200,"n_chans, n_outputs, n_times",5866180,"Labram(n_chans=22, n_outputs=4, n_times=1000, sfreq=250)"
|
|
22
|
+
MSVTNet,Motor Imagery,Classification,250,"n_chans, n_outputs, n_times",75494," MSVTNet(n_chans=22, n_outputs=4, n_times=1000)"
|
|
23
|
+
SCCNet,Motor Imagery,Classification,125,"n_chans, n_outputs, n_times, sfreq",12070,"SCCNet(n_chans=22, n_outputs=4, n_times=1000, sfreq=125)"
|
|
24
|
+
SignalJEPA,"Motor Imagery, ERP, SSVEP",Embedding,128,"n_times, chs_info",3456882,"SignalJEPA(n_times=512, chs_info=Lee2019_MI().get_data(subjects=[1])[1]['0']['1train'].info[""chs""][:62])"
|
|
25
|
+
SignalJEPA_Contextual,"Motor Imagery, ERP, SSVEP",Classification,128,"n_outputs, n_times, chs_info",3459184,"SignalJEPA_Contextual(n_outputs=2, input_window_seconds=4.19, sfreq=128, chs_info=Lee2019_MI().get_data(subjects=[1])[1]['0']['1train'].info[""chs""][:62])"
|
|
26
|
+
SignalJEPA_PostLocal,"Motor Imagery, ERP, SSVEP",Classification,128,"n_chans, n_outputs, n_times",16142,"SignalJEPA_PostLocal(n_chans=62, n_outputs=2, input_window_seconds=4.19, sfreq=128)"
|
|
27
|
+
SignalJEPA_PreLocal,"Motor Imagery, ERP, SSVEP",Classification,128,"n_outputs, n_times, chs_info",16142,"SignalJEPA_PreLocal(n_chans=62, n_outputs=2, input_window_seconds=4.19, sfreq=128)"
|
|
28
|
+
SincShallowNet,Motor Imagery,Classification,250,"n_chans, n_outputs, n_times, sfreq",21892,"SincShallowNet(n_chans=22, n_outputs=4, n_times=1000, sfreq=250)"
|
|
29
|
+
ShallowFBCSPNet,Motor Imagery,Classification,250,"n_chans, n_outputs, n_times",46084,"ShallowFBCSPNet(n_chans=22, n_outputs=4, n_times=1000, sfreq=250)"
|
|
30
|
+
SleepStagerBlanco2020,Sleep Staging,Classification,100,"n_chans, n_outputs, n_times",2845,"SleepStagerBlanco2020(n_chans=2, n_outputs=5, n_times=3000, sfreq=100)"
|
|
31
|
+
SleepStagerChambon2018,Sleep Staging,Classification,128,"n_chans, n_outputs, n_times, sfreq",5835,"SleepStagerChambon2018(n_chans=2, n_outputs=5, n_times=3840, sfreq=128)"
|
|
32
|
+
SleepStagerEldele2021,Sleep Staging,Classification,100,"n_chans, n_outputs, n_times, sfreq",719925,"SleepStagerEldele2021(n_chans=2, n_outputs=5, n_times=3000, sfreq=100)"
|
|
33
|
+
SPARCNet,Epilepsy,Classification,200,"n_chans, n_outputs, n_times",1141921,"SPARCNet(n_chans=16, n_outputs=6, n_times=2000, sfreq=200)"
|
|
34
|
+
SyncNet,"Emotion Recognition, Alcoholism",Classification,256,"n_chans, n_outputs, n_times",554,"SyncNet(n_chans=62, n_outputs=3, n_times=5120, sfreq=256)"
|
|
35
|
+
TSceptionV1,Emotion Recognition,Classification,256,"n_chans, n_outputs, n_times, sfreq",2187206,"TSceptionV1(n_chans=62, n_outputs=3, n_times=5120, sfreq=256)"
|
|
36
|
+
TIDNet,General,Classification,250,"n_chans, n_outputs, n_times",240404,"TIDNet(n_chans=22, n_outputs=4, n_times=1000)"
|
|
37
|
+
USleep,Sleep Staging,Classification,128,"n_chans, n_outputs, n_times, sfreq",2482011,"USleep(n_chans=2, n_outputs=5, n_times=3000, sfreq=100)"
|
|
38
|
+
FBCNet,Motor Imagery,Classification,250,"n_chans, n_outputs, n_times, sfreq",11812,"FCNet(n_chans=22, n_outputs=4, n_times=1000, sfreq=250)"
|
|
39
|
+
FBMSNet,Motor Imagery,Classification,250,"n_chans, n_outputs, n_times, sfreq",16231,"FBMSNet(n_chans=22, n_outputs=4, n_times=1000, sfreq=250)"
|
|
40
|
+
FBLightConvNet,Motor Imagery,Classification,250,"n_chans, n_outputs, n_times, sfreq",6596,"FBLightConvNet(n_chans=22, n_outputs=4, n_times=1000, sfreq=250)"
|
|
41
|
+
IFNet,Motor Imagery,Classification,250,"n_chans, n_outputs, n_times, sfreq",9860,"IFNet(n_chans=22, n_outputs=4, n_times=1000, sfreq=250)"
|
{braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/util.py
RENAMED
|
@@ -55,6 +55,7 @@ models_mandatory_parameters = [
|
|
|
55
55
|
("EEGInceptionERP", ["n_chans", "n_outputs", "n_times", "sfreq"], None),
|
|
56
56
|
("EEGInceptionMI", ["n_chans", "n_outputs", "n_times", "sfreq"], None),
|
|
57
57
|
("EEGITNet", ["n_chans", "n_outputs", "n_times"], None),
|
|
58
|
+
("EEGNetv1", ["n_chans", "n_outputs", "n_times"], None),
|
|
58
59
|
("EEGNetv4", ["n_chans", "n_outputs", "n_times"], None),
|
|
59
60
|
("EEGResNet", ["n_chans", "n_outputs", "n_times"], None),
|
|
60
61
|
("ShallowFBCSPNet", ["n_chans", "n_outputs", "n_times"], None),
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "1.2.0.dev180217551"
|
{braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551/braindecode.egg-info}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: braindecode
|
|
3
|
-
Version: 1.2.0.
|
|
3
|
+
Version: 1.2.0.dev180217551
|
|
4
4
|
Summary: Deep learning software to decode EEG, ECG or MEG signals
|
|
5
5
|
Author-email: Robin Tibor Schirrmeister <robintibor@gmail.com>
|
|
6
6
|
Maintainer-email: Alexandre Gramfort <agramfort@meta.com>, Bruno Aristimunha Pinto <b.aristimunha@gmail.com>, Robin Tibor Schirrmeister <robintibor@gmail.com>
|
|
@@ -49,9 +49,6 @@ Requires-Dist: mypy; extra == "tests"
|
|
|
49
49
|
Provides-Extra: docs
|
|
50
50
|
Requires-Dist: sphinx_gallery; extra == "docs"
|
|
51
51
|
Requires-Dist: sphinx_rtd_theme; extra == "docs"
|
|
52
|
-
Requires-Dist: sphinx-autodoc-typehints; extra == "docs"
|
|
53
|
-
Requires-Dist: sphinx-autobuild; extra == "docs"
|
|
54
|
-
Requires-Dist: sphinxcontrib-bibtex; extra == "docs"
|
|
55
52
|
Requires-Dist: pydata_sphinx_theme; extra == "docs"
|
|
56
53
|
Requires-Dist: numpydoc; extra == "docs"
|
|
57
54
|
Requires-Dist: memory_profiler; extra == "docs"
|
|
@@ -62,7 +59,6 @@ Requires-Dist: lightning; extra == "docs"
|
|
|
62
59
|
Requires-Dist: seaborn; extra == "docs"
|
|
63
60
|
Requires-Dist: pre-commit; extra == "docs"
|
|
64
61
|
Requires-Dist: openneuro-py; extra == "docs"
|
|
65
|
-
Requires-Dist: plotly; extra == "docs"
|
|
66
62
|
Provides-Extra: all
|
|
67
63
|
Requires-Dist: braindecode[docs,moabb,tests]; extra == "all"
|
|
68
64
|
Dynamic: license-file
|
{braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode.egg-info/SOURCES.txt
RENAMED
|
@@ -24,7 +24,6 @@ braindecode/datasets/base.py
|
|
|
24
24
|
braindecode/datasets/bbci.py
|
|
25
25
|
braindecode/datasets/bcicomp.py
|
|
26
26
|
braindecode/datasets/bids.py
|
|
27
|
-
braindecode/datasets/experimental.py
|
|
28
27
|
braindecode/datasets/mne.py
|
|
29
28
|
braindecode/datasets/moabb.py
|
|
30
29
|
braindecode/datasets/nmt.py
|
|
@@ -111,14 +110,11 @@ docs/cite.rst
|
|
|
111
110
|
docs/conf.py
|
|
112
111
|
docs/help.rst
|
|
113
112
|
docs/index.rst
|
|
113
|
+
docs/models_summary.rst
|
|
114
114
|
docs/sg_execution_times.rst
|
|
115
115
|
docs/whats_new.rst
|
|
116
116
|
docs/_templates/autosummary/class.rst
|
|
117
117
|
docs/_templates/autosummary/function.rst
|
|
118
118
|
docs/install/install.rst
|
|
119
119
|
docs/install/install_pip.rst
|
|
120
|
-
docs/install/install_source.rst
|
|
121
|
-
docs/models/models.rst
|
|
122
|
-
docs/models/models_categorization.rst
|
|
123
|
-
docs/models/models_table.rst
|
|
124
|
-
docs/models/models_visualization.rst
|
|
120
|
+
docs/install/install_source.rst
|
{braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode.egg-info/requires.txt
RENAMED
|
@@ -22,9 +22,6 @@ braindecode[docs,moabb,tests]
|
|
|
22
22
|
[docs]
|
|
23
23
|
sphinx_gallery
|
|
24
24
|
sphinx_rtd_theme
|
|
25
|
-
sphinx-autodoc-typehints
|
|
26
|
-
sphinx-autobuild
|
|
27
|
-
sphinxcontrib-bibtex
|
|
28
25
|
pydata_sphinx_theme
|
|
29
26
|
numpydoc
|
|
30
27
|
memory_profiler
|
|
@@ -35,7 +32,6 @@ lightning
|
|
|
35
32
|
seaborn
|
|
36
33
|
pre-commit
|
|
37
34
|
openneuro-py
|
|
38
|
-
plotly
|
|
39
35
|
|
|
40
36
|
[moabb]
|
|
41
37
|
moabb>=1.2.0
|
|
@@ -19,12 +19,12 @@ Model zoo availables in braindecode. The models are implemented as
|
|
|
19
19
|
All the models have the convention of having the signal related parameters
|
|
20
20
|
named the same way, following the braindecode's standards:
|
|
21
21
|
|
|
22
|
-
+
|
|
23
|
-
+
|
|
24
|
-
+
|
|
25
|
-
+
|
|
26
|
-
+
|
|
27
|
-
+
|
|
22
|
+
+ ``n_outputs``: Number of labels or outputs of the model.
|
|
23
|
+
+ ``n_chans``: Number of EEG channels.
|
|
24
|
+
+ ``n_times``: Number of time points of the input window.
|
|
25
|
+
+ ``input_window_seconds``: Length of the input window in seconds.
|
|
26
|
+
+ ``sfreq``: Sampling frequency of the EEG recordings.
|
|
27
|
+
+ ``chs_info``: Information about each individual EEG channel. Refer to :class:`mne.Info["chs"]`.
|
|
28
28
|
|
|
29
29
|
All the models assume that the input data is a 3D tensor of shape
|
|
30
30
|
``(batch_size, n_chans, n_times)``, and some models also accept a 4D tensor of shape
|
|
@@ -65,6 +65,7 @@ provides a common interface for all EEG models and derivate variables names if n
|
|
|
65
65
|
EEGInceptionMI
|
|
66
66
|
EEGITNet
|
|
67
67
|
EEGMiner
|
|
68
|
+
EEGNetv1
|
|
68
69
|
EEGNetv4
|
|
69
70
|
EEGNeX
|
|
70
71
|
EEGResNet
|
|
@@ -42,10 +42,6 @@ curdir = os.path.dirname(__file__)
|
|
|
42
42
|
sys.path.append(os.path.abspath(os.path.join(curdir, "..", "braindecode")))
|
|
43
43
|
sys.path.append(os.path.abspath(os.path.join(curdir, "sphinxext")))
|
|
44
44
|
|
|
45
|
-
import sphinx_design
|
|
46
|
-
|
|
47
|
-
print(f"--- Sphinx is using sphinx_design version: {sphinx_design.__version__} ---")
|
|
48
|
-
|
|
49
45
|
# Add any Sphinx extension module names here, as strings. They can be
|
|
50
46
|
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
|
|
51
47
|
# ones.
|
|
@@ -59,9 +55,7 @@ extensions = [
|
|
|
59
55
|
"sphinx.ext.ifconfig",
|
|
60
56
|
"sphinx.ext.intersphinx",
|
|
61
57
|
"sphinx.ext.githubpages",
|
|
62
|
-
"sphinxcontrib.bibtex",
|
|
63
58
|
"sphinx.ext.napoleon",
|
|
64
|
-
"sphinx_autodoc_typehints",
|
|
65
59
|
"sphinx_gallery.gen_gallery",
|
|
66
60
|
"sphinx.ext.linkcode",
|
|
67
61
|
"sphinx_design",
|
|
@@ -172,15 +166,15 @@ templates_path = ["_templates"]
|
|
|
172
166
|
# source_suffix = ['.rst', '.md']
|
|
173
167
|
source_suffix = ".rst"
|
|
174
168
|
|
|
175
|
-
|
|
169
|
+
rst_prolog = """
|
|
170
|
+
.. role:: tag(bdg-success)
|
|
171
|
+
"""
|
|
176
172
|
# The master toctree document.
|
|
177
173
|
master_doc = "index"
|
|
178
174
|
|
|
179
175
|
# General information about the project.
|
|
180
176
|
|
|
181
|
-
|
|
182
|
-
bibtex_reference_style = "author_year"
|
|
183
|
-
bibtex_default_style = "unsrt"
|
|
177
|
+
|
|
184
178
|
# -- Project information -----------------------------------------------------
|
|
185
179
|
|
|
186
180
|
project = "Braindecode"
|
|
@@ -362,6 +356,7 @@ html_context = {
|
|
|
362
356
|
}
|
|
363
357
|
|
|
364
358
|
html_sidebars = {
|
|
359
|
+
"models_summary": [],
|
|
365
360
|
"cite": [],
|
|
366
361
|
"help": [],
|
|
367
362
|
"whats_new": [],
|
|
@@ -396,7 +391,7 @@ latex_documents = [
|
|
|
396
391
|
master_doc,
|
|
397
392
|
"Braindecode.tex",
|
|
398
393
|
"Braindecode",
|
|
399
|
-
"
|
|
394
|
+
"Robin Tibor Schirrmeister",
|
|
400
395
|
"manual",
|
|
401
396
|
),
|
|
402
397
|
]
|
|
@@ -435,16 +430,6 @@ other_icons = (
|
|
|
435
430
|
"cloud-download-alt",
|
|
436
431
|
"wrench",
|
|
437
432
|
"hourglass",
|
|
438
|
-
# Add your new icons here
|
|
439
|
-
"braille",
|
|
440
|
-
"repeat",
|
|
441
|
-
"lightbulb",
|
|
442
|
-
"layer-group",
|
|
443
|
-
"eye",
|
|
444
|
-
"circle-nodes",
|
|
445
|
-
"magnifying-glass-chart",
|
|
446
|
-
"share-nodes",
|
|
447
|
-
"clone",
|
|
448
433
|
)
|
|
449
434
|
icons = dict()
|
|
450
435
|
for icon in brand_icons + fixed_icons + other_icons:
|
|
@@ -472,7 +457,7 @@ prolog += """
|
|
|
472
457
|
prolog += """
|
|
473
458
|
.. |ensp| unicode:: U+2002 .. EN SPACE
|
|
474
459
|
"""
|
|
475
|
-
|
|
460
|
+
|
|
476
461
|
# -- Options for manual page output ---------------------------------------
|
|
477
462
|
|
|
478
463
|
# One entry per manual page. List of tuples
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
.. raw:: html
|
|
2
|
+
|
|
3
|
+
<style>
|
|
4
|
+
.tag {
|
|
5
|
+
display: inline-block;
|
|
6
|
+
background-color: #e0f7fa;
|
|
7
|
+
color: #00796b;
|
|
8
|
+
padding: 4px 8px;
|
|
9
|
+
margin: 2px;
|
|
10
|
+
border-radius: 4px;
|
|
11
|
+
font-size: 0.9em;
|
|
12
|
+
}
|
|
13
|
+
</style>
|
|
14
|
+
<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
|
|
15
|
+
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/v/bm/dt-1.13.4/datatables.min.css"/>
|
|
16
|
+
|
|
17
|
+
.. _models-summary:
|
|
18
|
+
|
|
19
|
+
Models Summary
|
|
20
|
+
~~~~~~~~~~~~~~
|
|
21
|
+
|
|
22
|
+
This page offers a summary of many implemented models. Please note that this list may not be exhaustive. For the definitive and most current list, including detailed class documentation, please consult the :doc:`API documentation <api>`.
|
|
23
|
+
|
|
24
|
+
We are continually expanding this collection and welcome contributions! If you have implemented a model relevant to EEG, EcoG, or MEG analysis, consider adding it to Braindecode. See the "Submit a New Model" section below for details.
|
|
25
|
+
|
|
26
|
+
.. figure:: _static/model/models_analysis.png
|
|
27
|
+
:alt: Braindecode Models
|
|
28
|
+
:align: center
|
|
29
|
+
|
|
30
|
+
Visualization comparing the models based on their total number of parameters (left plot) and the primary experimental paradigm they were designed for (right plot).
|
|
31
|
+
|
|
32
|
+
Columns definitions:
|
|
33
|
+
- **Model**: The name of the model.
|
|
34
|
+
- **Paradigm**: The paradigm(s) the model is typically used for (e.g., Motor Imagery, P300, Sleep Staging). 'General' indicates applicability across multiple paradigms or no specific paradigm focus.
|
|
35
|
+
- **Type**: The model's primary function (e.g., Classification, Regression, Embedding).
|
|
36
|
+
- **Freq (Hz)**: The data sampling rate (in Hertz) the model is designed for. Note that this might be adaptable depending on the specific dataset and application.
|
|
37
|
+
- **Hyperparameters**: The mandatory hyperparameters required for instantiating the model class. These may include `n_chans` (number of channels), `n_outputs` (number of output classes or regression targets), `n_times` (number of time points in the input window), or `sfreq` (sampling frequency). Also, `n_times` can be derived implicitly by providing both `sfreq` and `input_window_seconds`.
|
|
38
|
+
- **#Parameters**: The approximate total number of trainable parameters in the model, calculated using a consistent configuration (see note below).
|
|
39
|
+
|
|
40
|
+
.. raw:: html
|
|
41
|
+
|
|
42
|
+
<!-- Dropdown filter container -->
|
|
43
|
+
<div id="custom-filters" style="margin-bottom: 15px;"></div>
|
|
44
|
+
|
|
45
|
+
.. raw:: html
|
|
46
|
+
:file: generated/models_summary_table.html
|
|
47
|
+
|
|
48
|
+
The parameter counts shown in the table were calculated using consistent hyperparameters for models within the same paradigm, based largely on Braindecode's default implementation values. These counts provide a relative comparison but may differ from those reported in the original publications due to variations in specific architectural details, input dimensions used in the paper, or calculation methods.
|
|
49
|
+
|
|
50
|
+
Submit a new model
|
|
51
|
+
~~~~~~~~~~~~~~~~~~
|
|
52
|
+
|
|
53
|
+
Want to contribute a new model to Braindecode? Great! You can propose a new model by opening an `issue <braindecode-issues_>`_ (please include a link to the relevant publication or description) or, even better, directly submit your implementation via a `pull request <braindecode-pulls_>`_. We appreciate your contributions to expanding the library!
|
|
54
|
+
|
|
55
|
+
.. raw:: html
|
|
56
|
+
|
|
57
|
+
<script type="text/javascript" src="https://cdn.datatables.net/v/bm/dt-1.13.4/datatables.min.js"></script>
|
|
58
|
+
<script type="text/javascript">
|
|
59
|
+
$(document).ready(function () {
|
|
60
|
+
var table = $('.sortable').DataTable({
|
|
61
|
+
paging: false,
|
|
62
|
+
searching: true,
|
|
63
|
+
info: false,
|
|
64
|
+
language: {
|
|
65
|
+
search: "Filter models:"
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
var filterColumns = {
|
|
70
|
+
1: "Select Paradigm",
|
|
71
|
+
2: "Choose Model Type",
|
|
72
|
+
4: "Select Required Hyperparameter"
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
var $filterContainer = $('#custom-filters');
|
|
76
|
+
var dropdowns = {};
|
|
77
|
+
|
|
78
|
+
$.each(filterColumns, function (colIdx, label) {
|
|
79
|
+
var select = $('<select><option value="" disabled selected>' + label + '</option></select>')
|
|
80
|
+
.css({ 'margin-right': '10px', 'padding': '5px', 'margin-bottom': '10px' });
|
|
81
|
+
|
|
82
|
+
var uniqueTags = new Set();
|
|
83
|
+
|
|
84
|
+
table.column(colIdx).data().each(function (d) {
|
|
85
|
+
if (d) {
|
|
86
|
+
var tags = [];
|
|
87
|
+
var $temp = $('<div>' + d + '</div>');
|
|
88
|
+
var $foundTags = $temp.find('.tag');
|
|
89
|
+
|
|
90
|
+
if ($foundTags.length > 0) {
|
|
91
|
+
$foundTags.each(function () {
|
|
92
|
+
var tag = $(this).text().trim();
|
|
93
|
+
if (tag) tags.push(tag);
|
|
94
|
+
});
|
|
95
|
+
} else {
|
|
96
|
+
var plainText = $temp.text();
|
|
97
|
+
tags = plainText.split(/,\s*|\s+/).map(function (tag) {
|
|
98
|
+
return tag.trim();
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
tags.forEach(function (tag) {
|
|
103
|
+
if (tag) uniqueTags.add(tag);
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
|
|
108
|
+
Array.from(uniqueTags).sort().forEach(function (tag) {
|
|
109
|
+
select.append('<option value="' + tag + '">' + tag + '</option>');
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
select.on('change', function () {
|
|
113
|
+
var val = $(this).val();
|
|
114
|
+
table.column(colIdx).search(val ? val : '', true, false).draw();
|
|
115
|
+
});
|
|
116
|
+
|
|
117
|
+
dropdowns[colIdx] = select;
|
|
118
|
+
$filterContainer.append(select);
|
|
119
|
+
});
|
|
120
|
+
|
|
121
|
+
var clearBtn = $('<button>Clear Filters</button>')
|
|
122
|
+
.css({ 'margin-left': '10px', 'padding': '5px 10px', 'cursor': 'pointer' })
|
|
123
|
+
.on('click', function () {
|
|
124
|
+
$.each(dropdowns, function (colIdx, select) {
|
|
125
|
+
select.prop('selectedIndex', 0);
|
|
126
|
+
table.column(colIdx).search('').draw();
|
|
127
|
+
});
|
|
128
|
+
});
|
|
129
|
+
|
|
130
|
+
$filterContainer.append(clearBtn);
|
|
131
|
+
});
|
|
132
|
+
</script>
|
|
133
|
+
|
|
134
|
+
.. include:: links.inc
|
|
@@ -24,11 +24,9 @@ Enhancements
|
|
|
24
24
|
~~~~~~~~~~~~
|
|
25
25
|
- Improving the docstring for :class:`braindecode.models.EEGNetv4` (:gh:`768` by `Bruno Aristimunha`_)
|
|
26
26
|
- Improving the docstring for :class:`braindecode.models.EEGConformer` (:gh:`769` by `Bruno Aristimunha`_)
|
|
27
|
-
- Experimental BIDS Iterable Dataset support (:gh:`766` by `Bruno Aristimunha`_ and `Pierre Guetschel`_)
|
|
28
27
|
- Improving the docstring for :class:`braindecode.models.ATCNet` (:gh:`771` by `Bruno Aristimunha`_)
|
|
29
28
|
- Improving the docstring for :class:`braindecode.models.AttentionBaseNet` (:gh:`772` by `Bruno Aristimunha`_)
|
|
30
29
|
- Improving the docstring for :class:`braindecode.models.EEGNeX` (:gh:`773` by `Bruno Aristimunha`_)
|
|
31
|
-
- Massive refactor of the models webpage (:gh:`774` by `Bruno Aristimunha`_)
|
|
32
30
|
|
|
33
31
|
|
|
34
32
|
API changes
|
|
@@ -43,7 +41,6 @@ Current 1.1.1 (stable)
|
|
|
43
41
|
|
|
44
42
|
Enhancements
|
|
45
43
|
~~~~~~~~~~~~
|
|
46
|
-
- Massive refactor of the model webpage
|
|
47
44
|
|
|
48
45
|
API changes
|
|
49
46
|
~~~~~~~~~~~
|
|
@@ -75,9 +75,6 @@ tests = [
|
|
|
75
75
|
docs = [
|
|
76
76
|
'sphinx_gallery',
|
|
77
77
|
'sphinx_rtd_theme',
|
|
78
|
-
'sphinx-autodoc-typehints',
|
|
79
|
-
'sphinx-autobuild',
|
|
80
|
-
'sphinxcontrib-bibtex',
|
|
81
78
|
'pydata_sphinx_theme',
|
|
82
79
|
'numpydoc',
|
|
83
80
|
'memory_profiler',
|
|
@@ -87,8 +84,7 @@ docs = [
|
|
|
87
84
|
'lightning',
|
|
88
85
|
'seaborn',
|
|
89
86
|
'pre-commit',
|
|
90
|
-
'openneuro-py'
|
|
91
|
-
'plotly',
|
|
87
|
+
'openneuro-py'
|
|
92
88
|
]
|
|
93
89
|
all = [
|
|
94
90
|
"braindecode[moabb,tests,docs]"
|