Braindecode 1.5.0.dev1001__tar.gz → 1.5.0.dev1002__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.5.0.dev1001/braindecode.egg-info → braindecode-1.5.0.dev1002}/PKG-INFO +1 -1
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/datasets/sleep_physionet.py +1 -15
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/models/__init__.py +0 -2
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/models/summary.csv +0 -1
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/models/util.py +0 -12
- braindecode-1.5.0.dev1002/braindecode/version.py +1 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002/braindecode.egg-info}/PKG-INFO +1 -1
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode.egg-info/SOURCES.txt +0 -1
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/docs/api.rst +0 -1
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/docs/whats_new.rst +0 -22
- braindecode-1.5.0.dev1001/braindecode/models/emg2qwerty.py +0 -714
- braindecode-1.5.0.dev1001/braindecode/version.py +0 -1
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/LICENSE.txt +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/MANIFEST.in +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/NOTICE.txt +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/README.rst +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/__init__.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/augmentation/__init__.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/augmentation/base.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/augmentation/functional.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/augmentation/transforms.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/classifier.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/datasets/__init__.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/datasets/base.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/datasets/bbci.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/datasets/bcicomp.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/datasets/bids/__init__.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/datasets/bids/datasets.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/datasets/bids/format.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/datasets/bids/hub.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/datasets/bids/hub_format.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/datasets/bids/hub_io.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/datasets/bids/hub_validation.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/datasets/bids/iterable.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/datasets/chb_mit.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/datasets/mne.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/datasets/moabb.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/datasets/nmt.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/datasets/registry.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/datasets/siena.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/datasets/sleep_physio_challe_18.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/datasets/tuh.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/datasets/utils.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/datasets/xy.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/datautil/__init__.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/datautil/channel_utils.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/datautil/hub_formats.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/datautil/serialization.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/datautil/util.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/eegneuralnet.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/functional/__init__.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/functional/functions.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/functional/initialization.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/models/atcnet.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/models/attentionbasenet.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/models/attn_sleep.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/models/base.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/models/bendr.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/models/biot.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/models/brainmodule.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/models/cbramod.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/models/codebrain.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/models/config.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/models/contrawr.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/models/ctnet.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/models/deep4.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/models/deepsleepnet.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/models/dgcnn.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/models/eegconformer.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/models/eeginception_erp.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/models/eeginception_mi.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/models/eegitnet.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/models/eegminer.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/models/eegnet.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/models/eegnex.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/models/eegpt.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/models/eegsimpleconv.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/models/eegsym.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/models/eegtcnet.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/models/fbcnet.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/models/fblightconvnet.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/models/fbmsnet.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/models/hybrid.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/models/ifnet.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/models/interpolated.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/models/labram.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/models/luna.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/models/medformer.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/models/meta_neuromotor.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/models/msvtnet.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/models/patchedtransformer.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/models/reve.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/models/sccnet.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/models/shallow_fbcsp.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/models/signal_jepa.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/models/sinc_shallow.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/models/sleep_stager_blanco_2020.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/models/sleep_stager_chambon_2018.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/models/sparcnet.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/models/sstdpn.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/models/syncnet.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/models/tcn.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/models/tidnet.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/models/tsinception.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/models/usleep.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/modules/__init__.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/modules/activation.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/modules/attention.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/modules/blocks.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/modules/convolution.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/modules/filter.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/modules/interpolation.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/modules/layers.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/modules/linear.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/modules/parametrization.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/modules/stats.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/modules/util.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/modules/wrapper.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/preprocessing/__init__.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/preprocessing/eegprep_preprocess.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/preprocessing/mne_preprocess.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/preprocessing/preprocess.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/preprocessing/util.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/preprocessing/windowers.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/regressor.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/samplers/__init__.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/samplers/base.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/samplers/ssl.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/training/__init__.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/training/callbacks.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/training/losses.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/training/scoring.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/util.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/visualization/__init__.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/visualization/confusion_matrices.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/visualization/gradients.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode.egg-info/dependency_links.txt +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode.egg-info/requires.txt +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode.egg-info/top_level.txt +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/docs/Makefile +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/docs/_templates/autosummary/class.rst +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/docs/_templates/autosummary/class_in_subdir.rst +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/docs/_templates/autosummary/function.rst +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/docs/_templates/autosummary/function_in_subdir.rst +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/docs/cite.rst +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/docs/conf.py +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/docs/help.rst +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/docs/index.rst +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/docs/install/install.rst +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/docs/install/install_pip.rst +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/docs/install/install_source.rst +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/docs/models/categorization/attention.rst +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/docs/models/categorization/channel.rst +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/docs/models/categorization/convolution.rst +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/docs/models/categorization/filterbank.rst +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/docs/models/categorization/gnn.rst +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/docs/models/categorization/interpretable.rst +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/docs/models/categorization/lbm.rst +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/docs/models/categorization/recurrent.rst +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/docs/models/categorization/spd.rst +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/docs/models/models.rst +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/docs/models/models_categorization.rst +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/docs/models/models_table.rst +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/docs/models/models_visualization.rst +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/docs/sg_execution_times.rst +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/pyproject.toml +0 -0
- {braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: braindecode
|
|
3
|
-
Version: 1.5.0.
|
|
3
|
+
Version: 1.5.0.dev1002
|
|
4
4
|
Summary: Deep learning software to decode EEG, ECG or MEG signals
|
|
5
5
|
Author-email: Robin Tibor Schirrmeister <robintibor@gmail.com>, Bruno Aristimunha Pinto <b.aristimunha@gmail.com>, Alexandre Gramfort <agramfort@meta.com>
|
|
6
6
|
Maintainer-email: Alexandre Gramfort <agramfort@meta.com>, Bruno Aristimunha Pinto <b.aristimunha@gmail.com>, Robin Tibor Schirrmeister <robintibor@gmail.com>
|
{braindecode-1.5.0.dev1001 → braindecode-1.5.0.dev1002}/braindecode/datasets/sleep_physionet.py
RENAMED
|
@@ -6,12 +6,10 @@
|
|
|
6
6
|
from __future__ import annotations
|
|
7
7
|
|
|
8
8
|
import os
|
|
9
|
-
import time
|
|
10
9
|
|
|
11
10
|
import mne
|
|
12
11
|
import numpy as np
|
|
13
12
|
import pandas as pd
|
|
14
|
-
import requests
|
|
15
13
|
from mne.datasets.sleep_physionet.age import fetch_data
|
|
16
14
|
|
|
17
15
|
from .base import BaseConcatDataset, RawDataset
|
|
@@ -61,19 +59,7 @@ class SleepPhysionet(BaseConcatDataset):
|
|
|
61
59
|
if recording_ids is None:
|
|
62
60
|
recording_ids = [1, 2]
|
|
63
61
|
|
|
64
|
-
|
|
65
|
-
retry_delay_s = 10
|
|
66
|
-
|
|
67
|
-
for attempt in range(max_attempts):
|
|
68
|
-
try:
|
|
69
|
-
paths = fetch_data(
|
|
70
|
-
subject_ids, recording=recording_ids, on_missing="warn"
|
|
71
|
-
)
|
|
72
|
-
break
|
|
73
|
-
except requests.exceptions.RequestException:
|
|
74
|
-
if attempt == max_attempts - 1:
|
|
75
|
-
raise
|
|
76
|
-
time.sleep(retry_delay_s)
|
|
62
|
+
paths = fetch_data(subject_ids, recording=recording_ids, on_missing="warn")
|
|
77
63
|
|
|
78
64
|
all_base_ds = list()
|
|
79
65
|
for p in paths:
|
|
@@ -25,7 +25,6 @@ from .eegpt import EEGPT
|
|
|
25
25
|
from .eegsimpleconv import EEGSimpleConv
|
|
26
26
|
from .eegsym import EEGSym
|
|
27
27
|
from .eegtcnet import EEGTCNet
|
|
28
|
-
from .emg2qwerty import EMG2QwertyNet
|
|
29
28
|
from .fbcnet import FBCNet
|
|
30
29
|
from .fblightconvnet import FBLightConvNet
|
|
31
30
|
from .fbmsnet import FBMSNet
|
|
@@ -96,7 +95,6 @@ __all__ = [
|
|
|
96
95
|
"EEGSimpleConv",
|
|
97
96
|
"EEGTCNet",
|
|
98
97
|
"DGCNN",
|
|
99
|
-
"EMG2QwertyNet",
|
|
100
98
|
"FBCNet",
|
|
101
99
|
"FBLightConvNet",
|
|
102
100
|
"FBMSNet",
|
|
@@ -40,7 +40,6 @@ USleep,Sleep Staging,Classification,128,"n_chans, n_outputs, n_times, sfreq",248
|
|
|
40
40
|
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)","Convolution,FilterBank"
|
|
41
41
|
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)","Convolution,FilterBank"
|
|
42
42
|
MetaNeuromotorHand,Handwriting (sEMG),CTC Sequence,2000,"n_chans, n_outputs, n_times, sfreq",1021284,"MetaNeuromotorHand(n_chans=16, n_outputs=100, n_times=32000, sfreq=2000)","Convolution,Attention/Transformer"
|
|
43
|
-
EMG2QwertyNet,Touch typing (sEMG),CTC Sequence,2000,"n_chans, n_outputs, n_times, sfreq",5293315,"EMG2QwertyNet(n_chans=32, n_outputs=99, n_times=8000, sfreq=2000)","Convolution"
|
|
44
43
|
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)","Convolution,FilterBank"
|
|
45
44
|
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)","Convolution,FilterBank"
|
|
46
45
|
BrainModule,Speech Decoding,Classification,250,"n_chans, n_outputs, n_times, sfreq",6186909,"BrainModule(n_chans=64, n_outputs=29, n_times=160, sfreq=1000)","Convolution"
|
|
@@ -347,17 +347,6 @@ models_mandatory_parameters: list[
|
|
|
347
347
|
"n_outputs": 100,
|
|
348
348
|
},
|
|
349
349
|
),
|
|
350
|
-
(
|
|
351
|
-
"EMG2QwertyNet",
|
|
352
|
-
["n_chans", "n_outputs", "n_times", "sfreq"],
|
|
353
|
-
{
|
|
354
|
-
"n_chans": 32,
|
|
355
|
-
"n_times": 8000,
|
|
356
|
-
"sfreq": 2000.0,
|
|
357
|
-
"input_window_seconds": 4.0,
|
|
358
|
-
"n_outputs": 99,
|
|
359
|
-
},
|
|
360
|
-
),
|
|
361
350
|
("FBLightConvNet", ["n_chans", "n_outputs", "n_times", "sfreq"], {"sfreq": 200.0}),
|
|
362
351
|
("IFNet", ["n_chans", "n_outputs", "n_times", "sfreq"], {"sfreq": 200.0}),
|
|
363
352
|
("PBT", ["n_chans", "n_outputs", "n_times"], None),
|
|
@@ -408,7 +397,6 @@ non_classification_models = [
|
|
|
408
397
|
"InterpolatedSignalJEPA",
|
|
409
398
|
# Emits a (batch, T_out, vocab) sequence for CTC, not class logits.
|
|
410
399
|
"MetaNeuromotorHand",
|
|
411
|
-
"EMG2QwertyNet",
|
|
412
400
|
]
|
|
413
401
|
|
|
414
402
|
################################################################
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "1.5.0.dev1002"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: braindecode
|
|
3
|
-
Version: 1.5.0.
|
|
3
|
+
Version: 1.5.0.dev1002
|
|
4
4
|
Summary: Deep learning software to decode EEG, ECG or MEG signals
|
|
5
5
|
Author-email: Robin Tibor Schirrmeister <robintibor@gmail.com>, Bruno Aristimunha Pinto <b.aristimunha@gmail.com>, Alexandre Gramfort <agramfort@meta.com>
|
|
6
6
|
Maintainer-email: Alexandre Gramfort <agramfort@meta.com>, Bruno Aristimunha Pinto <b.aristimunha@gmail.com>, Robin Tibor Schirrmeister <robintibor@gmail.com>
|
|
@@ -77,7 +77,6 @@ braindecode/models/eegpt.py
|
|
|
77
77
|
braindecode/models/eegsimpleconv.py
|
|
78
78
|
braindecode/models/eegsym.py
|
|
79
79
|
braindecode/models/eegtcnet.py
|
|
80
|
-
braindecode/models/emg2qwerty.py
|
|
81
80
|
braindecode/models/fbcnet.py
|
|
82
81
|
braindecode/models/fblightconvnet.py
|
|
83
82
|
braindecode/models/fbmsnet.py
|
|
@@ -77,26 +77,6 @@ Enhancements
|
|
|
77
77
|
the upstream repository; see the class docstring for the license
|
|
78
78
|
warning and the pretrained-checkpoint loading recipe.
|
|
79
79
|
By `Bruno Aristimunha`_.
|
|
80
|
-
- Add :class:`braindecode.models.EMG2QwertyNet`, a port of the
|
|
81
|
-
TDS-Conv-CTC touch-typing decoder from
|
|
82
|
-
``facebookresearch/emg2qwerty`` (Sivakumar et al., NeurIPS 2024). The
|
|
83
|
-
model takes raw 32-channel surface EMG (two 16-electrode wristbands at
|
|
84
|
-
2 kHz) and emits per-frame scores over a 99-class typing
|
|
85
|
-
vocabulary (98 keys + CTC blank); pass ``log_softmax=True`` to get
|
|
86
|
-
log-probabilities directly consumable by :class:`~torch.nn.CTCLoss`. The pipeline is a parameter-free
|
|
87
|
-
log-spectrogram front-end, per-electrode-per-band BatchNorm, a
|
|
88
|
-
circular rotation-invariant MLP (one per band), and a stack of
|
|
89
|
-
Time-Depth-Separable convolutional blocks (Hannun et al., 2019) without
|
|
90
|
-
temporal padding. The encoder ``nn.Sequential`` mirrors upstream's
|
|
91
|
-
``TDSConvCTCModule.model`` indices for parameter-bearing children, so
|
|
92
|
-
upstream emg2qwerty checkpoints load directly via ``load_state_dict``
|
|
93
|
-
(after stripping the PyTorch-Lightning ``network.`` prefix); the
|
|
94
|
-
class-level :attr:`~braindecode.models.EMG2QwertyNet.mapping` only
|
|
95
|
-
remaps the head from ``model.4.{weight,bias}`` to
|
|
96
|
-
``final_layer.{weight,bias}``. Distributed under CC BY-NC 4.0 to
|
|
97
|
-
match the upstream repository; see the class docstring for the
|
|
98
|
-
license warning and the pretrained-checkpoint loading recipe.
|
|
99
|
-
By `Bruno Aristimunha`_.
|
|
100
80
|
|
|
101
81
|
API and behavior changes
|
|
102
82
|
========================
|
|
@@ -167,8 +147,6 @@ Bug fixes
|
|
|
167
147
|
``examples/datasets_io/plot_bids_dataset_example.py`` against the live
|
|
168
148
|
OpenNeuro 5.0.0 GraphQL schema (``Cannot query field "key" on type
|
|
169
149
|
"DatasetFile"``) (:gh:`1002` by `Bruno Aristimunha`_)
|
|
170
|
-
- Retry transient TLS failures from ``physionet.org`` when fetching
|
|
171
|
-
:class:`braindecode.datasets.SleepPhysionet` (by `Bruno Aristimunha`_)
|
|
172
150
|
|
|
173
151
|
Code health
|
|
174
152
|
============
|