Braindecode 1.3.0.dev176122045__tar.gz → 1.3.0.dev176481332__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.dev176122045/braindecode.egg-info → braindecode-1.3.0.dev176481332}/PKG-INFO +1 -1
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/datasets/__init__.py +2 -2
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/datasets/moabb.py +5 -15
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/datautil/__init__.py +1 -11
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/__init__.py +0 -2
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/fbcnet.py +1 -3
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/fbmsnet.py +6 -18
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/summary.csv +0 -1
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/util.py +0 -1
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/modules/filter.py +6 -0
- braindecode-1.3.0.dev176481332/braindecode/version.py +1 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332/braindecode.egg-info}/PKG-INFO +1 -1
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode.egg-info/SOURCES.txt +0 -2
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/docs/api.rst +1 -2
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/docs/whats_new.rst +0 -4
- braindecode-1.3.0.dev176122045/braindecode/datautil/channel_utils.py +0 -114
- braindecode-1.3.0.dev176122045/braindecode/models/eegsym.py +0 -917
- braindecode-1.3.0.dev176122045/braindecode/version.py +0 -1
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/LICENSE.txt +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/MANIFEST.in +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/NOTICE.txt +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/README.rst +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/__init__.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/augmentation/__init__.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/augmentation/base.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/augmentation/functional.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/augmentation/transforms.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/classifier.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/datasets/base.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/datasets/bbci.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/datasets/bcicomp.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/datasets/bids.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/datasets/experimental.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/datasets/mne.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/datasets/nmt.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/datasets/sleep_physio_challe_18.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/datasets/sleep_physionet.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/datasets/tuh.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/datasets/xy.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/datautil/serialization.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/datautil/util.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/eegneuralnet.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/functional/__init__.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/functional/functions.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/functional/initialization.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/atcnet.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/attentionbasenet.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/attn_sleep.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/base.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/bendr.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/biot.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/contrawr.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/ctnet.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/deep4.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/deepsleepnet.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/eegconformer.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/eeginception_erp.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/eeginception_mi.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/eegitnet.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/eegminer.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/eegnet.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/eegnex.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/eegsimpleconv.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/eegtcnet.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/fblightconvnet.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/hybrid.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/ifnet.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/labram.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/msvtnet.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/patchedtransformer.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/sccnet.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/shallow_fbcsp.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/signal_jepa.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/sinc_shallow.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/sleep_stager_blanco_2020.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/sleep_stager_chambon_2018.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/sparcnet.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/sstdpn.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/syncnet.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/tcn.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/tidnet.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/tsinception.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/usleep.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/modules/__init__.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/modules/activation.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/modules/attention.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/modules/blocks.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/modules/convolution.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/modules/layers.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/modules/linear.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/modules/parametrization.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/modules/stats.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/modules/util.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/modules/wrapper.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/preprocessing/__init__.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/preprocessing/eegprep_preprocess.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/preprocessing/mne_preprocess.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/preprocessing/preprocess.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/preprocessing/util.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/preprocessing/windowers.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/regressor.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/samplers/__init__.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/samplers/base.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/samplers/ssl.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/training/__init__.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/training/callbacks.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/training/losses.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/training/scoring.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/util.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/visualization/__init__.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/visualization/confusion_matrices.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/visualization/gradients.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode.egg-info/dependency_links.txt +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode.egg-info/requires.txt +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode.egg-info/top_level.txt +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/docs/Makefile +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/docs/_templates/autosummary/class.rst +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/docs/_templates/autosummary/function.rst +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/docs/cite.rst +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/docs/conf.py +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/docs/help.rst +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/docs/index.rst +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/docs/install/install.rst +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/docs/install/install_pip.rst +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/docs/install/install_source.rst +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/docs/models/categorization/attention.rst +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/docs/models/categorization/channel.rst +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/docs/models/categorization/convolution.rst +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/docs/models/categorization/filterbank.rst +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/docs/models/categorization/gnn.rst +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/docs/models/categorization/interpretable.rst +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/docs/models/categorization/lbm.rst +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/docs/models/categorization/recurrent.rst +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/docs/models/categorization/spd.rst +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/docs/models/models.rst +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/docs/models/models_categorization.rst +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/docs/models/models_table.rst +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/docs/models/models_visualization.rst +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/docs/sg_execution_times.rst +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/pyproject.toml +0 -0
- {braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/setup.cfg +0 -0
{braindecode-1.3.0.dev176122045/braindecode.egg-info → braindecode-1.3.0.dev176481332}/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.dev176481332
|
|
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>
|
{braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/datasets/__init__.py
RENAMED
|
@@ -12,7 +12,7 @@ from .base import (
|
|
|
12
12
|
from .bcicomp import BCICompetitionIVDataset4
|
|
13
13
|
from .bids import BIDSDataset, BIDSEpochsDataset
|
|
14
14
|
from .mne import create_from_mne_epochs, create_from_mne_raw
|
|
15
|
-
from .moabb import
|
|
15
|
+
from .moabb import BNCI2014001, HGD, MOABBDataset
|
|
16
16
|
from .nmt import NMT
|
|
17
17
|
from .sleep_physio_challe_18 import SleepPhysionetChallenge2018
|
|
18
18
|
from .sleep_physionet import SleepPhysionet
|
|
@@ -29,7 +29,7 @@ __all__ = [
|
|
|
29
29
|
"BIDSEpochsDataset",
|
|
30
30
|
"MOABBDataset",
|
|
31
31
|
"HGD",
|
|
32
|
-
"
|
|
32
|
+
"BNCI2014001",
|
|
33
33
|
"create_from_mne_raw",
|
|
34
34
|
"create_from_mne_epochs",
|
|
35
35
|
"TUH",
|
{braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/datasets/moabb.py
RENAMED
|
@@ -15,7 +15,6 @@ from typing import Any
|
|
|
15
15
|
|
|
16
16
|
import mne
|
|
17
17
|
import pandas as pd
|
|
18
|
-
from mne.utils import deprecated
|
|
19
18
|
|
|
20
19
|
from braindecode.util import _update_moabb_docstring
|
|
21
20
|
|
|
@@ -170,8 +169,8 @@ class MOABBDataset(BaseConcatDataset):
|
|
|
170
169
|
super().__init__(all_base_ds)
|
|
171
170
|
|
|
172
171
|
|
|
173
|
-
class
|
|
174
|
-
doc = """See moabb.datasets.bnci.
|
|
172
|
+
class BNCI2014001(MOABBDataset):
|
|
173
|
+
doc = """See moabb.datasets.bnci.BNCI2014001
|
|
175
174
|
|
|
176
175
|
Parameters
|
|
177
176
|
----------
|
|
@@ -180,14 +179,14 @@ class BNCI2014_001(MOABBDataset):
|
|
|
180
179
|
subjects is fetched.
|
|
181
180
|
"""
|
|
182
181
|
try:
|
|
183
|
-
from moabb.datasets import
|
|
182
|
+
from moabb.datasets import BNCI2014001
|
|
184
183
|
|
|
185
|
-
__doc__ = _update_moabb_docstring(
|
|
184
|
+
__doc__ = _update_moabb_docstring(BNCI2014001, doc)
|
|
186
185
|
except ModuleNotFoundError:
|
|
187
186
|
pass # keep moabb soft dependency, otherwise crash on loading of datasets.__init__.py
|
|
188
187
|
|
|
189
188
|
def __init__(self, subject_ids):
|
|
190
|
-
super().__init__("
|
|
189
|
+
super().__init__("BNCI2014001", subject_ids=subject_ids)
|
|
191
190
|
|
|
192
191
|
|
|
193
192
|
class HGD(MOABBDataset):
|
|
@@ -208,12 +207,3 @@ class HGD(MOABBDataset):
|
|
|
208
207
|
|
|
209
208
|
def __init__(self, subject_ids):
|
|
210
209
|
super().__init__("Schirrmeister2017", subject_ids=subject_ids)
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
@deprecated(
|
|
214
|
-
"`BNCI2014001` was renamed to `BNCI2014_001` in v1.13; this alias will be removed in v1.14."
|
|
215
|
-
)
|
|
216
|
-
class BNCI2014001(BNCI2014_001):
|
|
217
|
-
"""Deprecated alias for BNCI2014001."""
|
|
218
|
-
|
|
219
|
-
pass
|
{braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/datautil/__init__.py
RENAMED
|
@@ -2,10 +2,6 @@
|
|
|
2
2
|
Utilities for data manipulation.
|
|
3
3
|
"""
|
|
4
4
|
|
|
5
|
-
from .channel_utils import (
|
|
6
|
-
division_channels_idx,
|
|
7
|
-
match_hemisphere_chans,
|
|
8
|
-
)
|
|
9
5
|
from .serialization import (
|
|
10
6
|
_check_save_dir_empty,
|
|
11
7
|
load_concat_dataset,
|
|
@@ -53,10 +49,4 @@ def __getattr__(name):
|
|
|
53
49
|
raise AttributeError("No possible import named " + name)
|
|
54
50
|
|
|
55
51
|
|
|
56
|
-
__all__ = [
|
|
57
|
-
"load_concat_dataset",
|
|
58
|
-
"save_concat_dataset",
|
|
59
|
-
"_check_save_dir_empty",
|
|
60
|
-
"match_hemisphere_chans",
|
|
61
|
-
"division_channels_idx",
|
|
62
|
-
]
|
|
52
|
+
__all__ = ["load_concat_dataset", "save_concat_dataset", "_check_save_dir_empty"]
|
{braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/__init__.py
RENAMED
|
@@ -20,7 +20,6 @@ from .eegminer import EEGMiner
|
|
|
20
20
|
from .eegnet import EEGNet, EEGNetv4
|
|
21
21
|
from .eegnex import EEGNeX
|
|
22
22
|
from .eegsimpleconv import EEGSimpleConv
|
|
23
|
-
from .eegsym import EEGSym
|
|
24
23
|
from .eegtcnet import EEGTCNet
|
|
25
24
|
from .fbcnet import FBCNet
|
|
26
25
|
from .fblightconvnet import FBLightConvNet
|
|
@@ -73,7 +72,6 @@ __all__ = [
|
|
|
73
72
|
"EEGNet",
|
|
74
73
|
"EEGNetv4",
|
|
75
74
|
"EEGNeX",
|
|
76
|
-
"EEGSym",
|
|
77
75
|
"EEGSimpleConv",
|
|
78
76
|
"EEGTCNet",
|
|
79
77
|
"FBCNet",
|
{braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/fbcnet.py
RENAMED
|
@@ -69,9 +69,7 @@ class FBCNet(EEGModuleMixin, nn.Module):
|
|
|
69
69
|
linear_max_norm : float, default=0.5
|
|
70
70
|
Maximum norm for the final linear layer.
|
|
71
71
|
filter_parameters: dict, default None
|
|
72
|
-
|
|
73
|
-
If None, a default Chebyshev Type II filter with transition bandwidth of
|
|
74
|
-
2 Hz and stop-band ripple of 30 dB will be used.
|
|
72
|
+
Parameters for the FilterBankLayer
|
|
75
73
|
|
|
76
74
|
References
|
|
77
75
|
----------
|
{braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/fbmsnet.py
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
-
from typing import
|
|
3
|
+
from typing import Optional, Sequence
|
|
4
4
|
|
|
5
5
|
import torch
|
|
6
6
|
from einops.layers.torch import Rearrange
|
|
@@ -57,28 +57,16 @@ class FBMSNet(EEGModuleMixin, nn.Module):
|
|
|
57
57
|
----------
|
|
58
58
|
n_bands : int, default=9
|
|
59
59
|
Number of input channels (e.g., number of frequency bands).
|
|
60
|
-
n_filters_spat : int, default=36
|
|
61
|
-
Number of output channels from the MixedConv2d layer.
|
|
62
|
-
temporal_layer : str, default='LogVarLayer'
|
|
63
|
-
Temporal aggregation layer to use.
|
|
64
|
-
n_dim: int, default=3
|
|
65
|
-
Dimension of the temporal reduction layer.
|
|
66
60
|
stride_factor : int, default=4
|
|
67
61
|
Stride factor for temporal segmentation.
|
|
62
|
+
temporal_layer : str, default='LogVarLayer'
|
|
63
|
+
Temporal aggregation layer to use.
|
|
64
|
+
n_filters_spat : int, default=36
|
|
65
|
+
Number of output channels from the MixedConv2d layer.
|
|
68
66
|
dilatability : int, default=8
|
|
69
67
|
Expansion factor for the spatial convolution block.
|
|
70
68
|
activation : nn.Module, default=nn.SiLU
|
|
71
69
|
Activation function class to apply.
|
|
72
|
-
kernels_weights : Sequence[int], default=(15, 31, 63, 125)
|
|
73
|
-
Kernel sizes for the MixedConv2d layer.
|
|
74
|
-
cnn_max_norm : float, default=2
|
|
75
|
-
Maximum norm constraint for the convolutional layers.
|
|
76
|
-
linear_max_norm : float, default=0.5
|
|
77
|
-
Maximum norm constraint for the linear layers.
|
|
78
|
-
filter_parameters : dict, default=None
|
|
79
|
-
Dictionary of parameters to use for the FilterBankLayer.
|
|
80
|
-
If None, a default Chebyshev Type II filter with transition bandwidth of
|
|
81
|
-
2 Hz and stop-band ripple of 30 dB will be used.
|
|
82
70
|
verbose: bool, default False
|
|
83
71
|
Verbose parameter to create the filter using mne.
|
|
84
72
|
|
|
@@ -115,7 +103,7 @@ class FBMSNet(EEGModuleMixin, nn.Module):
|
|
|
115
103
|
cnn_max_norm: float = 2,
|
|
116
104
|
linear_max_norm: float = 0.5,
|
|
117
105
|
verbose: bool = False,
|
|
118
|
-
filter_parameters: dict
|
|
106
|
+
filter_parameters: Optional[dict] = None,
|
|
119
107
|
):
|
|
120
108
|
super().__init__(
|
|
121
109
|
n_chans=n_chans,
|
{braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/summary.csv
RENAMED
|
@@ -13,7 +13,6 @@ EEGInceptionMI,Motor Imagery,Classification,250,"n_chans, n_outputs, n_times",55
|
|
|
13
13
|
EEGITNet,Motor Imagery,Classification,125,"n_chans, n_outputs, n_times",5212,"EEGITNet(n_chans=22, n_outputs=4, n_times=500)","Convolution,Recurrent"
|
|
14
14
|
EEGNet,General,Classification,128,"n_chans, n_outputs, n_times",2484,"EEGNet(n_chans=22, n_outputs=4, n_times=512)","Convolution"
|
|
15
15
|
EEGNeX,Motor Imagery,Classification,125,"n_chans, n_outputs, n_times",55940,"EEGNeX(n_chans=22, n_outputs=4, n_times=500)","Convolution"
|
|
16
|
-
EEGSym,Motor Imagery,Classification,250,"n_chans, n_outputs, n_times, sfreq",299218,"EEGSym(n_chans=22, n_outputs=4, n_times=1000, sfreq=250)","Convolution,Channel"
|
|
17
16
|
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)","Convolution,Interpretability"
|
|
18
17
|
EEGSimpleConv,Motor Imagery,Classification,80,"n_chans, n_outputs, sfreq",730404,"EEGSimpleConv(n_chans=22, n_outputs=4, n_times=320, sfreq=80)","Convolution"
|
|
19
18
|
EEGTCNet,Motor Imagery,Classification,250,"n_chans, n_outputs",4516,"EEGTCNet(n_chans=22, n_outputs=4, n_times=1000, kern_length=32)","Convolution,Recurrent"
|
{braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/models/util.py
RENAMED
|
@@ -79,7 +79,6 @@ models_mandatory_parameters = [
|
|
|
79
79
|
("SPARCNet", ["n_chans", "n_outputs", "n_times"], None),
|
|
80
80
|
("ContraWR", ["n_chans", "n_outputs", "sfreq", "n_times"], dict(sfreq=200.0)),
|
|
81
81
|
("EEGNeX", ["n_chans", "n_outputs", "n_times"], None),
|
|
82
|
-
("EEGSym", ["chs_info", "n_chans", "n_outputs", "n_times", "sfreq"], None),
|
|
83
82
|
("TSception", ["n_chans", "n_outputs", "n_times", "sfreq"], dict(sfreq=200.0)),
|
|
84
83
|
("EEGTCNet", ["n_chans", "n_outputs", "n_times"], None),
|
|
85
84
|
("SyncNet", ["n_chans", "n_outputs", "n_times"], None),
|
{braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode/modules/filter.py
RENAMED
|
@@ -109,6 +109,11 @@ class FilterBankLayer(nn.Module):
|
|
|
109
109
|
or "firwin2" to use :func:`scipy.signal.firwin2`. "firwin" uses
|
|
110
110
|
a time-domain design technique that generally gives improved
|
|
111
111
|
attenuation using fewer samples than "firwin2".
|
|
112
|
+
pad : str, default='reflect_limited'
|
|
113
|
+
The type of padding to use. Supports all func:`numpy.pad()` mode options.
|
|
114
|
+
Can also be "reflect_limited", which pads with a reflected version of
|
|
115
|
+
each vector mirrored on the first and last values of the vector,
|
|
116
|
+
followed by zeros. Only used for ``method='fir'``.
|
|
112
117
|
verbose: bool | str | int | None, default=True
|
|
113
118
|
Control verbosity of the logging output. If ``None``, use the default
|
|
114
119
|
verbosity level. See the func:`mne.verbose` for details.
|
|
@@ -178,6 +183,7 @@ class FilterBankLayer(nn.Module):
|
|
|
178
183
|
"The band_filters items should be splitable in 2 values."
|
|
179
184
|
)
|
|
180
185
|
|
|
186
|
+
# and we accepted as
|
|
181
187
|
self.band_filters = band_filters
|
|
182
188
|
self.n_bands = len(band_filters)
|
|
183
189
|
self.phase = phase
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "1.3.0.dev176481332"
|
{braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332/braindecode.egg-info}/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.dev176481332
|
|
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>
|
{braindecode-1.3.0.dev176122045 → braindecode-1.3.0.dev176481332}/braindecode.egg-info/SOURCES.txt
RENAMED
|
@@ -33,7 +33,6 @@ braindecode/datasets/sleep_physionet.py
|
|
|
33
33
|
braindecode/datasets/tuh.py
|
|
34
34
|
braindecode/datasets/xy.py
|
|
35
35
|
braindecode/datautil/__init__.py
|
|
36
|
-
braindecode/datautil/channel_utils.py
|
|
37
36
|
braindecode/datautil/serialization.py
|
|
38
37
|
braindecode/datautil/util.py
|
|
39
38
|
braindecode/functional/__init__.py
|
|
@@ -58,7 +57,6 @@ braindecode/models/eegminer.py
|
|
|
58
57
|
braindecode/models/eegnet.py
|
|
59
58
|
braindecode/models/eegnex.py
|
|
60
59
|
braindecode/models/eegsimpleconv.py
|
|
61
|
-
braindecode/models/eegsym.py
|
|
62
60
|
braindecode/models/eegtcnet.py
|
|
63
61
|
braindecode/models/fbcnet.py
|
|
64
62
|
braindecode/models/fblightconvnet.py
|
|
@@ -73,7 +73,6 @@ save and load models from the Hugging Face Hub, if the ``braindecode[hug]`` pack
|
|
|
73
73
|
EEGNet
|
|
74
74
|
EEGNeX
|
|
75
75
|
EEGSimpleConv
|
|
76
|
-
EEGSym
|
|
77
76
|
EEGTCNet
|
|
78
77
|
FBCNet
|
|
79
78
|
FBLightConvNet
|
|
@@ -332,7 +331,7 @@ Common Datasets
|
|
|
332
331
|
:toctree: generated/
|
|
333
332
|
|
|
334
333
|
BCICompetitionIVDataset4
|
|
335
|
-
|
|
334
|
+
BNCI2014001
|
|
336
335
|
HGD
|
|
337
336
|
MOABBDataset
|
|
338
337
|
NMT
|
|
@@ -33,14 +33,10 @@ Enhancements
|
|
|
33
33
|
- Fix minor documentation issues in Labram (:gh:`808` by `Matthew Chen`_)
|
|
34
34
|
- Including missed tag in all the models and creating some test for it (:gh:`811` by `Bruno Aristimunha`_ )
|
|
35
35
|
- Modify verbosity of create_window_from_events (:gh:`814` by `Matthew Chen`_)
|
|
36
|
-
- Modify the interface of FBMSNet for consistency with FBCNet + Unit Tests (:gh:`819` by `Matthew Chen`_)
|
|
37
|
-
- Adding :class:`braindecode.models.EEGSym` model (:gh:`697` by `Pierre Guetschel`_ and `Bruno Aristimunha`_ )
|
|
38
36
|
|
|
39
37
|
|
|
40
38
|
API changes
|
|
41
39
|
~~~~~~~~~~~
|
|
42
|
-
- Deprecating the old naming of MOABB Dataset name :gh:`826` by `Bruno Aristimunha`_
|
|
43
|
-
|
|
44
40
|
|
|
45
41
|
Bugs
|
|
46
42
|
~~~~
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
"""
|
|
2
|
-
Utilities for EEG channel manipulation and selection.
|
|
3
|
-
|
|
4
|
-
This module provides functions for dividing and matching EEG channels,
|
|
5
|
-
particularly for hemisphere-aware processing.
|
|
6
|
-
"""
|
|
7
|
-
|
|
8
|
-
import re
|
|
9
|
-
from re import search
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
def match_hemisphere_chans(left_chs, right_chs):
|
|
13
|
-
"""
|
|
14
|
-
Match channels of the left and right hemispheres based on their names.
|
|
15
|
-
|
|
16
|
-
This function pairs channels from the left and right hemispheres by matching
|
|
17
|
-
their numeric identifiers. For a left channel with number N, it finds the
|
|
18
|
-
corresponding right channel with number N+1.
|
|
19
|
-
|
|
20
|
-
Parameters
|
|
21
|
-
----------
|
|
22
|
-
left_chs : list of str
|
|
23
|
-
A list of channel names from the left hemisphere.
|
|
24
|
-
right_chs : list of str
|
|
25
|
-
A list of channel names from the right hemisphere.
|
|
26
|
-
|
|
27
|
-
Returns
|
|
28
|
-
-------
|
|
29
|
-
list of tuples
|
|
30
|
-
List of tuples with matched channel names from the left and right hemispheres.
|
|
31
|
-
Each tuple contains (left_channel, right_channel).
|
|
32
|
-
|
|
33
|
-
Raises
|
|
34
|
-
------
|
|
35
|
-
ValueError
|
|
36
|
-
If the left and right channels do not match in length.
|
|
37
|
-
ValueError
|
|
38
|
-
If a channel name does not contain a number.
|
|
39
|
-
ValueError
|
|
40
|
-
If no matching right hemisphere channel is found for a left channel.
|
|
41
|
-
|
|
42
|
-
Examples
|
|
43
|
-
--------
|
|
44
|
-
>>> left = ['C3', 'F3']
|
|
45
|
-
>>> right = ['C4', 'F4']
|
|
46
|
-
>>> match_hemisphere_chans(left, right)
|
|
47
|
-
[('C3', 'C4'), ('F3', 'F4')]
|
|
48
|
-
"""
|
|
49
|
-
if len(left_chs) != len(right_chs):
|
|
50
|
-
raise ValueError("Left and right channels do not match.")
|
|
51
|
-
right_chs = list(right_chs)
|
|
52
|
-
regexp = r"\d+"
|
|
53
|
-
out = []
|
|
54
|
-
for left in left_chs:
|
|
55
|
-
match = re.search(regexp, left)
|
|
56
|
-
if match is None:
|
|
57
|
-
raise ValueError(f"Channel '{left}' does not contain a number.")
|
|
58
|
-
chan_idx = 1 + int(match.group())
|
|
59
|
-
target_r = re.sub(regexp, str(chan_idx), left)
|
|
60
|
-
for right in right_chs:
|
|
61
|
-
if right == target_r:
|
|
62
|
-
out.append((left, right))
|
|
63
|
-
right_chs.remove(right)
|
|
64
|
-
break
|
|
65
|
-
else:
|
|
66
|
-
raise ValueError(
|
|
67
|
-
f"Found no right hemisphere matching channel for '{left}'."
|
|
68
|
-
)
|
|
69
|
-
return out
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
def division_channels_idx(ch_names):
|
|
73
|
-
"""
|
|
74
|
-
Divide EEG channel names into left, right, and middle based on numbering.
|
|
75
|
-
|
|
76
|
-
This function categorizes channels by their numeric suffix:
|
|
77
|
-
- Odd-numbered channels → left hemisphere
|
|
78
|
-
- Even-numbered channels → right hemisphere
|
|
79
|
-
- Channels without numbers → middle/midline
|
|
80
|
-
|
|
81
|
-
Parameters
|
|
82
|
-
----------
|
|
83
|
-
ch_names : list of str
|
|
84
|
-
A list of EEG channel names to be divided based on their numbering.
|
|
85
|
-
|
|
86
|
-
Returns
|
|
87
|
-
-------
|
|
88
|
-
tuple of lists
|
|
89
|
-
Three lists containing the channel names:
|
|
90
|
-
- left: Odd-numbered channels (e.g., C3, F3, P3)
|
|
91
|
-
- right: Even-numbered channels (e.g., C4, F4, P4)
|
|
92
|
-
- middle: Channels without numbers (e.g., Cz, Fz, Pz)
|
|
93
|
-
|
|
94
|
-
Notes
|
|
95
|
-
-----
|
|
96
|
-
The function identifies channel numbers by searching for numeric characters
|
|
97
|
-
in the channel names. Standard 10-20 system EEG channel naming conventions
|
|
98
|
-
use odd numbers for left hemisphere and even numbers for right hemisphere.
|
|
99
|
-
|
|
100
|
-
Examples
|
|
101
|
-
--------
|
|
102
|
-
>>> channels = ['FP1', 'FP2', 'O1', 'O2', 'FZ']
|
|
103
|
-
>>> division_channels_idx(channels)
|
|
104
|
-
(['FP1', 'O1'], ['FP2', 'O2'], ['FZ'])
|
|
105
|
-
"""
|
|
106
|
-
left, right, middle = [], [], []
|
|
107
|
-
for ch in ch_names:
|
|
108
|
-
number = search(r"\d+", ch)
|
|
109
|
-
if number is not None:
|
|
110
|
-
(left if int(number[0]) % 2 else right).append(ch)
|
|
111
|
-
else:
|
|
112
|
-
middle.append(ch)
|
|
113
|
-
|
|
114
|
-
return left, right, middle
|