Braindecode 1.3.0.dev172913106__tar.gz → 1.3.0.dev173577785__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.dev172913106/braindecode.egg-info → braindecode-1.3.0.dev173577785}/PKG-INFO +2 -6
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/augmentation/base.py +1 -1
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/datasets/__init__.py +2 -10
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/datasets/base.py +151 -115
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/datasets/bcicomp.py +4 -4
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/datasets/bids.py +3 -3
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/datasets/experimental.py +2 -2
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/datasets/mne.py +5 -3
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/datasets/moabb.py +2 -2
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/datasets/nmt.py +2 -2
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/datasets/sleep_physio_challe_18.py +2 -2
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/datasets/sleep_physionet.py +2 -2
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/datasets/tuh.py +2 -2
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/datasets/xy.py +2 -2
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/datautil/__init__.py +1 -11
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/datautil/serialization.py +7 -7
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/eegneuralnet.py +0 -2
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/functional/functions.py +2 -6
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/functional/initialization.py +3 -2
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/models/__init__.py +0 -6
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/models/atcnet.py +28 -27
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/models/attentionbasenet.py +32 -39
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/models/attn_sleep.py +0 -2
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/models/base.py +2 -280
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/models/biot.py +0 -2
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/models/contrawr.py +0 -2
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/models/ctnet.py +3 -8
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/models/deepsleepnet.py +19 -28
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/models/eegconformer.py +2 -2
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/models/eeginception_erp.py +25 -31
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/models/eegitnet.py +0 -2
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/models/eegminer.py +0 -2
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/models/eegnet.py +1 -1
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/models/eegtcnet.py +0 -2
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/models/fbcnet.py +1 -5
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/models/fblightconvnet.py +0 -2
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/models/fbmsnet.py +6 -20
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/models/ifnet.py +0 -2
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/models/labram.py +87 -193
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/models/msvtnet.py +0 -2
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/models/signal_jepa.py +27 -111
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/models/sinc_shallow.py +9 -12
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/models/sstdpn.py +11 -11
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/models/summary.csv +0 -3
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/models/syncnet.py +0 -2
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/models/tcn.py +0 -2
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/models/usleep.py +21 -26
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/models/util.py +0 -3
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/modules/attention.py +10 -10
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/modules/blocks.py +3 -3
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/modules/filter.py +9 -2
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/modules/layers.py +17 -18
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/preprocessing/__init__.py +0 -24
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/preprocessing/preprocess.py +12 -12
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/preprocessing/windowers.py +20 -26
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/samplers/base.py +8 -8
- braindecode-1.3.0.dev173577785/braindecode/version.py +1 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785/braindecode.egg-info}/PKG-INFO +2 -6
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode.egg-info/SOURCES.txt +0 -6
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode.egg-info/requires.txt +1 -7
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/docs/api.rst +10 -38
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/docs/index.rst +1 -1
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/docs/models/categorization/attention.rst +2 -2
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/docs/models/categorization/channel.rst +2 -2
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/docs/models/categorization/convolution.rst +2 -2
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/docs/models/categorization/filterbank.rst +3 -3
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/docs/models/categorization/gnn.rst +6 -3
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/docs/models/categorization/interpretable.rst +3 -3
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/docs/models/categorization/lbm.rst +2 -2
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/docs/models/categorization/recurrent.rst +3 -3
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/docs/models/categorization/spd.rst +3 -3
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/docs/whats_new.rst +1 -18
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/pyproject.toml +1 -3
- braindecode-1.3.0.dev172913106/braindecode/datautil/channel_utils.py +0 -114
- braindecode-1.3.0.dev172913106/braindecode/models/bendr.py +0 -469
- braindecode-1.3.0.dev172913106/braindecode/models/eegsym.py +0 -917
- braindecode-1.3.0.dev172913106/braindecode/models/patchedtransformer.py +0 -640
- braindecode-1.3.0.dev172913106/braindecode/preprocessing/eegprep_preprocess.py +0 -1202
- braindecode-1.3.0.dev172913106/braindecode/preprocessing/util.py +0 -166
- braindecode-1.3.0.dev172913106/braindecode/version.py +0 -1
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/LICENSE.txt +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/MANIFEST.in +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/NOTICE.txt +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/README.rst +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/__init__.py +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/augmentation/__init__.py +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/augmentation/functional.py +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/augmentation/transforms.py +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/classifier.py +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/datasets/bbci.py +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/datautil/util.py +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/functional/__init__.py +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/models/deep4.py +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/models/eeginception_mi.py +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/models/eegnex.py +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/models/eegsimpleconv.py +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/models/hybrid.py +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/models/sccnet.py +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/models/shallow_fbcsp.py +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/models/sleep_stager_blanco_2020.py +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/models/sleep_stager_chambon_2018.py +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/models/sparcnet.py +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/models/tidnet.py +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/models/tsinception.py +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/modules/__init__.py +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/modules/activation.py +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/modules/convolution.py +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/modules/linear.py +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/modules/parametrization.py +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/modules/stats.py +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/modules/util.py +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/modules/wrapper.py +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/preprocessing/mne_preprocess.py +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/regressor.py +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/samplers/__init__.py +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/samplers/ssl.py +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/training/__init__.py +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/training/callbacks.py +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/training/losses.py +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/training/scoring.py +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/util.py +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/visualization/__init__.py +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/visualization/confusion_matrices.py +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/visualization/gradients.py +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode.egg-info/dependency_links.txt +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode.egg-info/top_level.txt +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/docs/Makefile +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/docs/_templates/autosummary/class.rst +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/docs/_templates/autosummary/function.rst +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/docs/cite.rst +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/docs/conf.py +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/docs/help.rst +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/docs/install/install.rst +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/docs/install/install_pip.rst +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/docs/install/install_source.rst +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/docs/models/models.rst +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/docs/models/models_categorization.rst +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/docs/models/models_table.rst +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/docs/models/models_visualization.rst +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/docs/sg_execution_times.rst +0 -0
- {braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/setup.cfg +0 -0
{braindecode-1.3.0.dev172913106/braindecode.egg-info → braindecode-1.3.0.dev173577785}/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.dev173577785
|
|
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>
|
|
@@ -40,10 +40,6 @@ Requires-Dist: linear_attention_transformer
|
|
|
40
40
|
Requires-Dist: docstring_inheritance
|
|
41
41
|
Provides-Extra: moabb
|
|
42
42
|
Requires-Dist: moabb>=1.2.0; extra == "moabb"
|
|
43
|
-
Provides-Extra: eegprep
|
|
44
|
-
Requires-Dist: eegprep[eeglabio]>=0.1.1; extra == "eegprep"
|
|
45
|
-
Provides-Extra: hug
|
|
46
|
-
Requires-Dist: huggingface_hub[torch]>=0.20.0; extra == "hug"
|
|
47
43
|
Provides-Extra: tests
|
|
48
44
|
Requires-Dist: pytest; extra == "tests"
|
|
49
45
|
Requires-Dist: pytest-cov; extra == "tests"
|
|
@@ -69,7 +65,7 @@ Requires-Dist: pre-commit; extra == "docs"
|
|
|
69
65
|
Requires-Dist: openneuro-py; extra == "docs"
|
|
70
66
|
Requires-Dist: plotly; extra == "docs"
|
|
71
67
|
Provides-Extra: all
|
|
72
|
-
Requires-Dist: braindecode[docs,
|
|
68
|
+
Requires-Dist: braindecode[docs,moabb,tests]; extra == "all"
|
|
73
69
|
Dynamic: license-file
|
|
74
70
|
|
|
75
71
|
.. image:: https://badges.gitter.im/braindecodechat/community.svg
|
{braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/augmentation/base.py
RENAMED
|
@@ -189,7 +189,7 @@ class AugmentedDataLoader(DataLoader):
|
|
|
189
189
|
|
|
190
190
|
Parameters
|
|
191
191
|
----------
|
|
192
|
-
dataset :
|
|
192
|
+
dataset : BaseDataset
|
|
193
193
|
The dataset containing the signals.
|
|
194
194
|
transforms : list | Transform, optional
|
|
195
195
|
Transform or sequence of Transform to be applied to each batch.
|
{braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/datasets/__init__.py
RENAMED
|
@@ -2,13 +2,7 @@
|
|
|
2
2
|
Loader code for some datasets.
|
|
3
3
|
"""
|
|
4
4
|
|
|
5
|
-
from .base import
|
|
6
|
-
BaseConcatDataset,
|
|
7
|
-
EEGWindowsDataset,
|
|
8
|
-
RawDataset,
|
|
9
|
-
RecordDataset,
|
|
10
|
-
WindowsDataset,
|
|
11
|
-
)
|
|
5
|
+
from .base import BaseConcatDataset, BaseDataset, WindowsDataset
|
|
12
6
|
from .bcicomp import BCICompetitionIVDataset4
|
|
13
7
|
from .bids import BIDSDataset, BIDSEpochsDataset
|
|
14
8
|
from .mne import create_from_mne_epochs, create_from_mne_raw
|
|
@@ -21,9 +15,7 @@ from .xy import create_from_X_y
|
|
|
21
15
|
|
|
22
16
|
__all__ = [
|
|
23
17
|
"WindowsDataset",
|
|
24
|
-
"
|
|
25
|
-
"RecordDataset",
|
|
26
|
-
"RawDataset",
|
|
18
|
+
"BaseDataset",
|
|
27
19
|
"BaseConcatDataset",
|
|
28
20
|
"BIDSDataset",
|
|
29
21
|
"BIDSEpochsDataset",
|
{braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/datasets/base.py
RENAMED
|
@@ -16,17 +16,14 @@ import json
|
|
|
16
16
|
import os
|
|
17
17
|
import shutil
|
|
18
18
|
import warnings
|
|
19
|
-
from abc import abstractmethod
|
|
20
19
|
from collections.abc import Callable
|
|
21
20
|
from glob import glob
|
|
22
|
-
from typing import
|
|
21
|
+
from typing import Iterable, no_type_check
|
|
23
22
|
|
|
24
23
|
import mne.io
|
|
25
24
|
import numpy as np
|
|
26
25
|
import pandas as pd
|
|
27
|
-
from mne.utils.docs import deprecated
|
|
28
26
|
from torch.utils.data import ConcatDataset, Dataset
|
|
29
|
-
from typing_extensions import TypeVar
|
|
30
27
|
|
|
31
28
|
|
|
32
29
|
def _create_description(description) -> pd.Series:
|
|
@@ -40,64 +37,7 @@ def _create_description(description) -> pd.Series:
|
|
|
40
37
|
return description
|
|
41
38
|
|
|
42
39
|
|
|
43
|
-
class
|
|
44
|
-
def __init__(
|
|
45
|
-
self,
|
|
46
|
-
description: dict | pd.Series | None = None,
|
|
47
|
-
transform: Callable | None = None,
|
|
48
|
-
):
|
|
49
|
-
self._description = _create_description(description)
|
|
50
|
-
self.transform = transform
|
|
51
|
-
|
|
52
|
-
@abstractmethod
|
|
53
|
-
def __len__(self) -> int:
|
|
54
|
-
pass
|
|
55
|
-
|
|
56
|
-
@property
|
|
57
|
-
def description(self) -> pd.Series:
|
|
58
|
-
return self._description
|
|
59
|
-
|
|
60
|
-
def set_description(self, description: dict | pd.Series, overwrite: bool = False):
|
|
61
|
-
"""Update (add or overwrite) the dataset description.
|
|
62
|
-
|
|
63
|
-
Parameters
|
|
64
|
-
----------
|
|
65
|
-
description: dict | pd.Series
|
|
66
|
-
Description in the form key: value.
|
|
67
|
-
overwrite: bool
|
|
68
|
-
Has to be True if a key in description already exists in the
|
|
69
|
-
dataset description.
|
|
70
|
-
"""
|
|
71
|
-
description = _create_description(description)
|
|
72
|
-
if self.description is None:
|
|
73
|
-
self._description = description
|
|
74
|
-
else:
|
|
75
|
-
for key, value in description.items():
|
|
76
|
-
# if the key is already in the existing description, drop it
|
|
77
|
-
if key in self._description:
|
|
78
|
-
assert overwrite, (
|
|
79
|
-
f"'{key}' already in description. Please "
|
|
80
|
-
f"rename or set overwrite to True."
|
|
81
|
-
)
|
|
82
|
-
self._description.pop(key)
|
|
83
|
-
self._description = pd.concat([self.description, description])
|
|
84
|
-
|
|
85
|
-
@property
|
|
86
|
-
def transform(self) -> Callable | None:
|
|
87
|
-
return self._transform
|
|
88
|
-
|
|
89
|
-
@transform.setter
|
|
90
|
-
def transform(self, value: Callable | None):
|
|
91
|
-
if value is not None and not callable(value):
|
|
92
|
-
raise ValueError("Transform needs to be a callable.")
|
|
93
|
-
self._transform = value
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
# Type of the datasets contained in BaseConcatDataset
|
|
97
|
-
T = TypeVar("T", bound=RecordDataset)
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
class RawDataset(RecordDataset):
|
|
40
|
+
class BaseDataset(Dataset):
|
|
101
41
|
"""Returns samples from an mne.io.Raw object along with a target.
|
|
102
42
|
|
|
103
43
|
Dataset which serves samples from an mne.io.Raw object along with a target.
|
|
@@ -124,8 +64,9 @@ class RawDataset(RecordDataset):
|
|
|
124
64
|
target_name: str | tuple[str, ...] | None = None,
|
|
125
65
|
transform: Callable | None = None,
|
|
126
66
|
):
|
|
127
|
-
super().__init__(description, transform)
|
|
128
67
|
self.raw = raw
|
|
68
|
+
self._description = _create_description(description)
|
|
69
|
+
self.transform = transform
|
|
129
70
|
|
|
130
71
|
# save target name for load/save later
|
|
131
72
|
self.target_name = self._target_name(target_name)
|
|
@@ -144,6 +85,45 @@ class RawDataset(RecordDataset):
|
|
|
144
85
|
def __len__(self):
|
|
145
86
|
return len(self.raw)
|
|
146
87
|
|
|
88
|
+
@property
|
|
89
|
+
def transform(self):
|
|
90
|
+
return self._transform
|
|
91
|
+
|
|
92
|
+
@transform.setter
|
|
93
|
+
def transform(self, value):
|
|
94
|
+
if value is not None and not callable(value):
|
|
95
|
+
raise ValueError("Transform needs to be a callable.")
|
|
96
|
+
self._transform = value
|
|
97
|
+
|
|
98
|
+
@property
|
|
99
|
+
def description(self) -> pd.Series:
|
|
100
|
+
return self._description
|
|
101
|
+
|
|
102
|
+
def set_description(self, description: dict | pd.Series, overwrite: bool = False):
|
|
103
|
+
"""Update (add or overwrite) the dataset description.
|
|
104
|
+
|
|
105
|
+
Parameters
|
|
106
|
+
----------
|
|
107
|
+
description: dict | pd.Series
|
|
108
|
+
Description in the form key: value.
|
|
109
|
+
overwrite: bool
|
|
110
|
+
Has to be True if a key in description already exists in the
|
|
111
|
+
dataset description.
|
|
112
|
+
"""
|
|
113
|
+
description = _create_description(description)
|
|
114
|
+
for key, value in description.items():
|
|
115
|
+
# if the key is already in the existing description, drop it
|
|
116
|
+
if self._description is not None and key in self._description:
|
|
117
|
+
assert overwrite, (
|
|
118
|
+
f"'{key}' already in description. Please "
|
|
119
|
+
f"rename or set overwrite to True."
|
|
120
|
+
)
|
|
121
|
+
self._description.pop(key)
|
|
122
|
+
if self._description is None:
|
|
123
|
+
self._description = description
|
|
124
|
+
else:
|
|
125
|
+
self._description = pd.concat([self.description, description])
|
|
126
|
+
|
|
147
127
|
def _target_name(self, target_name):
|
|
148
128
|
if target_name is not None and not isinstance(target_name, (str, tuple, list)):
|
|
149
129
|
raise ValueError("target_name has to be None, str, tuple or list")
|
|
@@ -170,17 +150,7 @@ class RawDataset(RecordDataset):
|
|
|
170
150
|
return target_name if len(target_name) > 1 else target_name[0]
|
|
171
151
|
|
|
172
152
|
|
|
173
|
-
|
|
174
|
-
"The BaseDataset class is deprecated. "
|
|
175
|
-
"If you want to instantiate a dataset containing raws, use RawDataset instead. "
|
|
176
|
-
"If you want to type a Braindecode dataset (i.e. RawDataset|EEGWindowsDataset|WindowsDataset), "
|
|
177
|
-
"use the RecordDataset class instead."
|
|
178
|
-
)
|
|
179
|
-
class BaseDataset(RawDataset):
|
|
180
|
-
pass
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
class EEGWindowsDataset(RecordDataset):
|
|
153
|
+
class EEGWindowsDataset(BaseDataset):
|
|
184
154
|
"""Returns windows from an mne.Raw object, its window indices, along with a target.
|
|
185
155
|
|
|
186
156
|
Dataset which serves windows from an mne.Epochs object along with their
|
|
@@ -191,12 +161,12 @@ class EEGWindowsDataset(RecordDataset):
|
|
|
191
161
|
required to serve information about the windowing (e.g., useful for cropped
|
|
192
162
|
training).
|
|
193
163
|
See `braindecode.datautil.windowers` to directly create a `WindowsDataset`
|
|
194
|
-
from a `
|
|
164
|
+
from a `BaseDataset` object.
|
|
195
165
|
|
|
196
166
|
Parameters
|
|
197
167
|
----------
|
|
198
168
|
windows : mne.Raw or mne.Epochs (Epochs is outdated)
|
|
199
|
-
Windows obtained through the application of a windower to a
|
|
169
|
+
Windows obtained through the application of a windower to a BaseDataset
|
|
200
170
|
(see `braindecode.datautil.windowers`).
|
|
201
171
|
description : dict | pandas.Series | None
|
|
202
172
|
Holds additional info about the windows.
|
|
@@ -215,17 +185,18 @@ class EEGWindowsDataset(RecordDataset):
|
|
|
215
185
|
|
|
216
186
|
def __init__(
|
|
217
187
|
self,
|
|
218
|
-
raw: mne.io.BaseRaw,
|
|
188
|
+
raw: mne.io.BaseRaw | mne.BaseEpochs,
|
|
219
189
|
metadata: pd.DataFrame,
|
|
220
190
|
description: dict | pd.Series | None = None,
|
|
221
191
|
transform: Callable | None = None,
|
|
222
192
|
targets_from: str = "metadata",
|
|
223
193
|
last_target_only: bool = True,
|
|
224
194
|
):
|
|
225
|
-
super().__init__(description, transform)
|
|
226
195
|
self.raw = raw
|
|
227
196
|
self.metadata = metadata
|
|
197
|
+
self._description = _create_description(description)
|
|
228
198
|
|
|
199
|
+
self.transform = transform
|
|
229
200
|
self.last_target_only = last_target_only
|
|
230
201
|
if targets_from not in ("metadata", "channels"):
|
|
231
202
|
raise ValueError("Wrong value for parameter `targets_from`.")
|
|
@@ -284,8 +255,44 @@ class EEGWindowsDataset(RecordDataset):
|
|
|
284
255
|
def __len__(self):
|
|
285
256
|
return len(self.crop_inds)
|
|
286
257
|
|
|
258
|
+
@property
|
|
259
|
+
def transform(self):
|
|
260
|
+
return self._transform
|
|
261
|
+
|
|
262
|
+
@transform.setter
|
|
263
|
+
def transform(self, value):
|
|
264
|
+
if value is not None and not callable(value):
|
|
265
|
+
raise ValueError("Transform needs to be a callable.")
|
|
266
|
+
self._transform = value
|
|
267
|
+
|
|
268
|
+
@property
|
|
269
|
+
def description(self) -> pd.Series:
|
|
270
|
+
return self._description
|
|
271
|
+
|
|
272
|
+
def set_description(self, description: dict | pd.Series, overwrite: bool = False):
|
|
273
|
+
"""Update (add or overwrite) the dataset description.
|
|
274
|
+
|
|
275
|
+
Parameters
|
|
276
|
+
----------
|
|
277
|
+
description: dict | pd.Series
|
|
278
|
+
Description in the form key: value.
|
|
279
|
+
overwrite: bool
|
|
280
|
+
Has to be True if a key in description already exists in the
|
|
281
|
+
dataset description.
|
|
282
|
+
"""
|
|
283
|
+
description = _create_description(description)
|
|
284
|
+
for key, value in description.items():
|
|
285
|
+
# if they key is already in the existing description, drop it
|
|
286
|
+
if key in self._description:
|
|
287
|
+
assert overwrite, (
|
|
288
|
+
f"'{key}' already in description. Please "
|
|
289
|
+
f"rename or set overwrite to True."
|
|
290
|
+
)
|
|
291
|
+
self._description.pop(key)
|
|
292
|
+
self._description = pd.concat([self.description, description])
|
|
287
293
|
|
|
288
|
-
|
|
294
|
+
|
|
295
|
+
class WindowsDataset(BaseDataset):
|
|
289
296
|
"""Returns windows from an mne.Epochs object along with a target.
|
|
290
297
|
|
|
291
298
|
Dataset which serves windows from an mne.Epochs object along with their
|
|
@@ -296,12 +303,12 @@ class WindowsDataset(RecordDataset):
|
|
|
296
303
|
required to serve information about the windowing (e.g., useful for cropped
|
|
297
304
|
training).
|
|
298
305
|
See `braindecode.datautil.windowers` to directly create a `WindowsDataset`
|
|
299
|
-
from a
|
|
306
|
+
from a `BaseDataset` object.
|
|
300
307
|
|
|
301
308
|
Parameters
|
|
302
309
|
----------
|
|
303
310
|
windows : mne.Epochs
|
|
304
|
-
Windows obtained through the application of a windower to a
|
|
311
|
+
Windows obtained through the application of a windower to a BaseDataset
|
|
305
312
|
(see `braindecode.datautil.windowers`).
|
|
306
313
|
description : dict | pandas.Series | None
|
|
307
314
|
Holds additional info about the windows.
|
|
@@ -320,20 +327,19 @@ class WindowsDataset(RecordDataset):
|
|
|
320
327
|
targets_from: str = "metadata",
|
|
321
328
|
last_target_only: bool = True,
|
|
322
329
|
):
|
|
323
|
-
super().__init__(description, transform)
|
|
324
330
|
self.windows = windows
|
|
331
|
+
self._description = _create_description(description)
|
|
332
|
+
self.transform = transform
|
|
325
333
|
self.last_target_only = last_target_only
|
|
326
334
|
if targets_from not in ("metadata", "channels"):
|
|
327
335
|
raise ValueError("Wrong value for parameter `targets_from`.")
|
|
328
336
|
self.targets_from = targets_from
|
|
329
337
|
|
|
330
|
-
|
|
331
|
-
assert metadata is not None, "WindowsDataset requires windows with metadata."
|
|
332
|
-
self.crop_inds = metadata.loc[
|
|
338
|
+
self.crop_inds = self.windows.metadata.loc[
|
|
333
339
|
:, ["i_window_in_trial", "i_start_in_trial", "i_stop_in_trial"]
|
|
334
340
|
].to_numpy()
|
|
335
341
|
if self.targets_from == "metadata":
|
|
336
|
-
self.y = metadata.loc[:, "target"].to_list()
|
|
342
|
+
self.y = self.windows.metadata.loc[:, "target"].to_list()
|
|
337
343
|
|
|
338
344
|
def __getitem__(self, index: int):
|
|
339
345
|
"""Get a window and its target.
|
|
@@ -373,8 +379,44 @@ class WindowsDataset(RecordDataset):
|
|
|
373
379
|
def __len__(self) -> int:
|
|
374
380
|
return len(self.windows.events)
|
|
375
381
|
|
|
382
|
+
@property
|
|
383
|
+
def transform(self):
|
|
384
|
+
return self._transform
|
|
385
|
+
|
|
386
|
+
@transform.setter
|
|
387
|
+
def transform(self, value):
|
|
388
|
+
if value is not None and not callable(value):
|
|
389
|
+
raise ValueError("Transform needs to be a callable.")
|
|
390
|
+
self._transform = value
|
|
376
391
|
|
|
377
|
-
|
|
392
|
+
@property
|
|
393
|
+
def description(self) -> pd.Series:
|
|
394
|
+
return self._description
|
|
395
|
+
|
|
396
|
+
def set_description(self, description: dict | pd.Series, overwrite: bool = False):
|
|
397
|
+
"""Update (add or overwrite) the dataset description.
|
|
398
|
+
|
|
399
|
+
Parameters
|
|
400
|
+
----------
|
|
401
|
+
description: dict | pd.Series
|
|
402
|
+
Description in the form key: value.
|
|
403
|
+
overwrite: bool
|
|
404
|
+
Has to be True if a key in description already exists in the
|
|
405
|
+
dataset description.
|
|
406
|
+
"""
|
|
407
|
+
description = _create_description(description)
|
|
408
|
+
for key, value in description.items():
|
|
409
|
+
# if they key is already in the existing description, drop it
|
|
410
|
+
if key in self._description:
|
|
411
|
+
assert overwrite, (
|
|
412
|
+
f"'{key}' already in description. Please "
|
|
413
|
+
f"rename or set overwrite to True."
|
|
414
|
+
)
|
|
415
|
+
self._description.pop(key)
|
|
416
|
+
self._description = pd.concat([self.description, description])
|
|
417
|
+
|
|
418
|
+
|
|
419
|
+
class BaseConcatDataset(ConcatDataset):
|
|
378
420
|
"""A base class for concatenated datasets.
|
|
379
421
|
|
|
380
422
|
Holds either mne.Raw or mne.Epoch in self.datasets and has
|
|
@@ -383,27 +425,22 @@ class BaseConcatDataset(ConcatDataset, Generic[T]):
|
|
|
383
425
|
Parameters
|
|
384
426
|
----------
|
|
385
427
|
list_of_ds : list
|
|
386
|
-
list of
|
|
428
|
+
list of BaseDataset, BaseConcatDataset or WindowsDataset
|
|
387
429
|
target_transform : callable | None
|
|
388
430
|
Optional function to call on targets before returning them.
|
|
389
431
|
|
|
390
432
|
"""
|
|
391
433
|
|
|
392
|
-
datasets: list[T]
|
|
393
|
-
|
|
394
434
|
def __init__(
|
|
395
435
|
self,
|
|
396
|
-
list_of_ds: list[
|
|
436
|
+
list_of_ds: list[BaseDataset | BaseConcatDataset | WindowsDataset]
|
|
437
|
+
| None = None,
|
|
397
438
|
target_transform: Callable | None = None,
|
|
398
439
|
):
|
|
399
440
|
# if we get a list of BaseConcatDataset, get all the individual datasets
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
flattened_list_of_ds.extend(ds.datasets)
|
|
404
|
-
else:
|
|
405
|
-
flattened_list_of_ds.append(ds)
|
|
406
|
-
super().__init__(flattened_list_of_ds)
|
|
441
|
+
if list_of_ds and isinstance(list_of_ds[0], BaseConcatDataset):
|
|
442
|
+
list_of_ds = [d for ds in list_of_ds for d in ds.datasets]
|
|
443
|
+
super().__init__(list_of_ds)
|
|
407
444
|
|
|
408
445
|
self.target_transform = target_transform
|
|
409
446
|
|
|
@@ -666,23 +703,22 @@ class BaseConcatDataset(ConcatDataset, Generic[T]):
|
|
|
666
703
|
ds.set_description({key: value_}, overwrite=overwrite)
|
|
667
704
|
|
|
668
705
|
def save(self, path: str, overwrite: bool = False, offset: int = 0):
|
|
669
|
-
"""Save datasets to files by creating one subdirectory for each dataset
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
0
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
1
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
target_name.json (if target_name is not None and dataset is raw)
|
|
706
|
+
"""Save datasets to files by creating one subdirectory for each dataset:
|
|
707
|
+
path/
|
|
708
|
+
0/
|
|
709
|
+
0-raw.fif | 0-epo.fif
|
|
710
|
+
description.json
|
|
711
|
+
raw_preproc_kwargs.json (if raws were preprocessed)
|
|
712
|
+
window_kwargs.json (if this is a windowed dataset)
|
|
713
|
+
window_preproc_kwargs.json (if windows were preprocessed)
|
|
714
|
+
target_name.json (if target_name is not None and dataset is raw)
|
|
715
|
+
1/
|
|
716
|
+
1-raw.fif | 1-epo.fif
|
|
717
|
+
description.json
|
|
718
|
+
raw_preproc_kwargs.json (if raws were preprocessed)
|
|
719
|
+
window_kwargs.json (if this is a windowed dataset)
|
|
720
|
+
window_preproc_kwargs.json (if windows were preprocessed)
|
|
721
|
+
target_name.json (if target_name is not None and dataset is raw)
|
|
686
722
|
|
|
687
723
|
Parameters
|
|
688
724
|
----------
|
{braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/datasets/bcicomp.py
RENAMED
|
@@ -16,7 +16,7 @@ import numpy as np
|
|
|
16
16
|
from mne.utils import verbose
|
|
17
17
|
from scipy.io import loadmat
|
|
18
18
|
|
|
19
|
-
from braindecode.datasets import BaseConcatDataset,
|
|
19
|
+
from braindecode.datasets import BaseConcatDataset, BaseDataset
|
|
20
20
|
|
|
21
21
|
DATASET_URL = (
|
|
22
22
|
"https://stacks.stanford.edu/file/druid:zk881ps0522/"
|
|
@@ -73,8 +73,8 @@ class BCICompetitionIVDataset4(BaseConcatDataset):
|
|
|
73
73
|
file_name=file_path.split("/")[-1],
|
|
74
74
|
session="test",
|
|
75
75
|
)
|
|
76
|
-
datasets.append(
|
|
77
|
-
datasets.append(
|
|
76
|
+
datasets.append(BaseDataset(raw_train, description=desc_train))
|
|
77
|
+
datasets.append(BaseDataset(raw_test, description=desc_test))
|
|
78
78
|
super().__init__(datasets)
|
|
79
79
|
|
|
80
80
|
@staticmethod
|
|
@@ -85,7 +85,7 @@ class BCICompetitionIVDataset4(BaseConcatDataset):
|
|
|
85
85
|
----------
|
|
86
86
|
path (None | str) – Location of where to look for the data storing location.
|
|
87
87
|
If None, the environment variable or config parameter
|
|
88
|
-
MNE_DATASETS_(dataset)_PATH is used. If it doesn
|
|
88
|
+
MNE_DATASETS_(dataset)_PATH is used. If it doesn’t exist, the “~/mne_data”
|
|
89
89
|
directory is used. If the dataset is not found under the given path, the data
|
|
90
90
|
will be automatically downloaded to the specified folder.
|
|
91
91
|
force_update (bool) – Force update of the dataset even if a local copy exists.
|
{braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/datasets/bids.py
RENAMED
|
@@ -19,7 +19,7 @@ import numpy as np
|
|
|
19
19
|
import pandas as pd
|
|
20
20
|
from joblib import Parallel, delayed
|
|
21
21
|
|
|
22
|
-
from .base import BaseConcatDataset,
|
|
22
|
+
from .base import BaseConcatDataset, BaseDataset, WindowsDataset
|
|
23
23
|
|
|
24
24
|
|
|
25
25
|
def _description_from_bids_path(bids_path: mne_bids.BIDSPath) -> dict[str, Any]:
|
|
@@ -186,12 +186,12 @@ class BIDSDataset(BaseConcatDataset):
|
|
|
186
186
|
)
|
|
187
187
|
super().__init__(all_base_ds)
|
|
188
188
|
|
|
189
|
-
def _get_dataset(self, bids_path: mne_bids.BIDSPath) ->
|
|
189
|
+
def _get_dataset(self, bids_path: mne_bids.BIDSPath) -> BaseDataset:
|
|
190
190
|
description = _description_from_bids_path(bids_path)
|
|
191
191
|
raw = mne_bids.read_raw_bids(bids_path, verbose=False)
|
|
192
192
|
if self.preload:
|
|
193
193
|
raw.load_data()
|
|
194
|
-
return
|
|
194
|
+
return BaseDataset(raw, description)
|
|
195
195
|
|
|
196
196
|
|
|
197
197
|
class BIDSEpochsDataset(BIDSDataset):
|
|
@@ -25,14 +25,14 @@ class BIDSIterableDataset(IterableDataset):
|
|
|
25
25
|
|
|
26
26
|
Examples
|
|
27
27
|
--------
|
|
28
|
-
>>> from braindecode.datasets import
|
|
28
|
+
>>> from braindecode.datasets import BaseDataset, BaseConcatDataset
|
|
29
29
|
>>> from braindecode.datasets.bids import BIDSIterableDataset, _description_from_bids_path
|
|
30
30
|
>>> from braindecode.preprocessing import create_fixed_length_windows
|
|
31
31
|
>>>
|
|
32
32
|
>>> def my_reader_fn(path):
|
|
33
33
|
... raw = mne_bids.read_raw_bids(path)
|
|
34
34
|
... desc = _description_from_bids_path(path)
|
|
35
|
-
... ds =
|
|
35
|
+
... ds = BaseDataset(raw, description=desc)
|
|
36
36
|
... windows_ds = create_fixed_length_windows(
|
|
37
37
|
... BaseConcatDataset([ds]),
|
|
38
38
|
... window_size_samples=400,
|
{braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/datasets/mne.py
RENAMED
|
@@ -9,7 +9,7 @@ import mne
|
|
|
9
9
|
import numpy as np
|
|
10
10
|
import pandas as pd
|
|
11
11
|
|
|
12
|
-
from .base import BaseConcatDataset,
|
|
12
|
+
from .base import BaseConcatDataset, BaseDataset, WindowsDataset
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
def create_from_mne_raw(
|
|
@@ -75,9 +75,11 @@ def create_from_mne_raw(
|
|
|
75
75
|
f"length of 'raws' ({len(raws)}) and 'description' "
|
|
76
76
|
f"({len(descriptions)}) has to match"
|
|
77
77
|
)
|
|
78
|
-
base_datasets = [
|
|
78
|
+
base_datasets = [
|
|
79
|
+
BaseDataset(raw, desc) for raw, desc in zip(raws, descriptions)
|
|
80
|
+
]
|
|
79
81
|
else:
|
|
80
|
-
base_datasets = [
|
|
82
|
+
base_datasets = [BaseDataset(raw) for raw in raws]
|
|
81
83
|
|
|
82
84
|
base_datasets = BaseConcatDataset(base_datasets)
|
|
83
85
|
windows_datasets = create_windows_from_events(
|
{braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/datasets/moabb.py
RENAMED
|
@@ -18,7 +18,7 @@ import pandas as pd
|
|
|
18
18
|
|
|
19
19
|
from braindecode.util import _update_moabb_docstring
|
|
20
20
|
|
|
21
|
-
from .base import BaseConcatDataset,
|
|
21
|
+
from .base import BaseConcatDataset, BaseDataset
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
def _find_dataset_in_moabb(dataset_name, dataset_kwargs=None):
|
|
@@ -164,7 +164,7 @@ class MOABBDataset(BaseConcatDataset):
|
|
|
164
164
|
dataset_load_kwargs=dataset_load_kwargs,
|
|
165
165
|
)
|
|
166
166
|
all_base_ds = [
|
|
167
|
-
|
|
167
|
+
BaseDataset(raw, row) for raw, (_, row) in zip(raws, description.iterrows())
|
|
168
168
|
]
|
|
169
169
|
super().__init__(all_base_ds)
|
|
170
170
|
|
{braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/datasets/nmt.py
RENAMED
|
@@ -31,7 +31,7 @@ import pandas as pd
|
|
|
31
31
|
from joblib import Parallel, delayed
|
|
32
32
|
from mne.datasets import fetch_dataset
|
|
33
33
|
|
|
34
|
-
from braindecode.datasets.base import BaseConcatDataset,
|
|
34
|
+
from braindecode.datasets.base import BaseConcatDataset, BaseDataset
|
|
35
35
|
|
|
36
36
|
NMT_URL = "https://zenodo.org/record/10909103/files/NMT.zip"
|
|
37
37
|
NMT_archive_name = "NMT.zip"
|
|
@@ -172,7 +172,7 @@ class NMT(BaseConcatDataset):
|
|
|
172
172
|
d["n_samples"] = raw.n_times
|
|
173
173
|
d["sfreq"] = raw.info["sfreq"]
|
|
174
174
|
d["train"] = "train" in d.path.split(os.sep)
|
|
175
|
-
base_dataset =
|
|
175
|
+
base_dataset = BaseDataset(raw, d, target_name)
|
|
176
176
|
return base_dataset
|
|
177
177
|
|
|
178
178
|
|
|
@@ -21,7 +21,7 @@ from mne.datasets.sleep_physionet._utils import _fetch_one
|
|
|
21
21
|
from mne.datasets.utils import _get_path
|
|
22
22
|
from mne.utils import warn
|
|
23
23
|
|
|
24
|
-
from braindecode.datasets import BaseConcatDataset,
|
|
24
|
+
from braindecode.datasets import BaseConcatDataset, BaseDataset
|
|
25
25
|
|
|
26
26
|
PC18_DIR = op.join(op.dirname(__file__), "data", "pc18")
|
|
27
27
|
PC18_RECORDS = op.join(PC18_DIR, "sleep_records.csv")
|
|
@@ -403,7 +403,7 @@ class SleepPhysionetChallenge2018(BaseConcatDataset):
|
|
|
403
403
|
},
|
|
404
404
|
name="",
|
|
405
405
|
)
|
|
406
|
-
base_dataset =
|
|
406
|
+
base_dataset = BaseDataset(raw_file, desc)
|
|
407
407
|
|
|
408
408
|
if preproc is not None:
|
|
409
409
|
from braindecode.preprocessing.preprocess import _preprocess
|
|
@@ -12,7 +12,7 @@ import numpy as np
|
|
|
12
12
|
import pandas as pd
|
|
13
13
|
from mne.datasets.sleep_physionet.age import fetch_data
|
|
14
14
|
|
|
15
|
-
from .base import BaseConcatDataset,
|
|
15
|
+
from .base import BaseConcatDataset, BaseDataset
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
class SleepPhysionet(BaseConcatDataset):
|
|
@@ -71,7 +71,7 @@ class SleepPhysionet(BaseConcatDataset):
|
|
|
71
71
|
crop_wake_mins=crop_wake_mins,
|
|
72
72
|
crop=crop,
|
|
73
73
|
)
|
|
74
|
-
base_ds =
|
|
74
|
+
base_ds = BaseDataset(raw, desc)
|
|
75
75
|
all_base_ds.append(base_ds)
|
|
76
76
|
super().__init__(all_base_ds)
|
|
77
77
|
|
{braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/datasets/tuh.py
RENAMED
|
@@ -22,7 +22,7 @@ import numpy as np
|
|
|
22
22
|
import pandas as pd
|
|
23
23
|
from joblib import Parallel, delayed
|
|
24
24
|
|
|
25
|
-
from .base import BaseConcatDataset,
|
|
25
|
+
from .base import BaseConcatDataset, BaseDataset
|
|
26
26
|
|
|
27
27
|
|
|
28
28
|
class TUH(BaseConcatDataset):
|
|
@@ -214,7 +214,7 @@ class TUH(BaseConcatDataset):
|
|
|
214
214
|
d["report"] = physician_report
|
|
215
215
|
additional_description = pd.Series(d)
|
|
216
216
|
description = pd.concat([description, additional_description])
|
|
217
|
-
base_dataset =
|
|
217
|
+
base_dataset = BaseDataset(raw, description, target_name=target_name)
|
|
218
218
|
return base_dataset
|
|
219
219
|
|
|
220
220
|
|
{braindecode-1.3.0.dev172913106 → braindecode-1.3.0.dev173577785}/braindecode/datasets/xy.py
RENAMED
|
@@ -12,7 +12,7 @@ import numpy as np
|
|
|
12
12
|
import pandas as pd
|
|
13
13
|
from numpy.typing import ArrayLike, NDArray
|
|
14
14
|
|
|
15
|
-
from .base import BaseConcatDataset,
|
|
15
|
+
from .base import BaseConcatDataset, BaseDataset
|
|
16
16
|
|
|
17
17
|
log = logging.getLogger(__name__)
|
|
18
18
|
|
|
@@ -69,7 +69,7 @@ def create_from_X_y(
|
|
|
69
69
|
n_samples_per_x.append(x.shape[1])
|
|
70
70
|
info = mne.create_info(ch_names=ch_names, sfreq=sfreq)
|
|
71
71
|
raw = mne.io.RawArray(x, info)
|
|
72
|
-
base_dataset =
|
|
72
|
+
base_dataset = BaseDataset(
|
|
73
73
|
raw, pd.Series({"target": target}), target_name="target"
|
|
74
74
|
)
|
|
75
75
|
base_datasets.append(base_dataset)
|