braindecode 1.7.0.dev183981614__tar.gz → 1.8.0.dev580__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.7.0.dev183981614/braindecode.egg-info → braindecode-1.8.0.dev580}/PKG-INFO +1 -1
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/classifier.py +2 -1
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/datasets/sleep_physionet.py +9 -3
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/eegneuralnet.py +4 -2
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/__init__.py +2 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/fblightconvnet.py +31 -4
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/summary.csv +1 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/util.py +9 -0
- braindecode-1.8.0.dev580/braindecode/models/zuna.py +612 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/preprocessing/eegprep_preprocess.py +1 -1
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/regressor.py +2 -1
- braindecode-1.8.0.dev580/braindecode/version.py +1 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580/braindecode.egg-info}/PKG-INFO +1 -1
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode.egg-info/SOURCES.txt +1 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/docs/api.rst +1 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/docs/whats_new.rst +66 -1
- braindecode-1.7.0.dev183981614/braindecode/version.py +0 -1
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/LICENSE.txt +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/MANIFEST.in +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/NOTICE.txt +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/README.rst +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/__init__.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/augmentation/__init__.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/augmentation/base.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/augmentation/functional.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/augmentation/transforms.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/datasets/__init__.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/datasets/base.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/datasets/bbci.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/datasets/bcicomp.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/datasets/bids/__init__.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/datasets/bids/datasets.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/datasets/bids/format.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/datasets/bids/hub.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/datasets/bids/hub_format.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/datasets/bids/hub_io.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/datasets/bids/hub_validation.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/datasets/bids/iterable.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/datasets/chb_mit.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/datasets/collate.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/datasets/mne.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/datasets/moabb.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/datasets/nmt.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/datasets/registry.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/datasets/siena.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/datasets/sleep_physio_challe_18.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/datasets/tuh.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/datasets/utils.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/datasets/xy.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/datautil/__init__.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/datautil/channel_utils.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/datautil/hub_formats.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/datautil/serialization.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/datautil/util.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/functional/__init__.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/functional/functions.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/functional/initialization.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/atcnet.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/attentionbasenet.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/attn_sleep.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/base.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/bendr.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/biot.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/brainmodule.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/cbramod.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/codebrain.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/config.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/contrawr.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/ctnet.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/dance.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/deep4.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/deepsleepnet.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/dgcnn.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/eegconformer.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/eegdino.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/eeginception_erp.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/eeginception_mi.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/eegitnet.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/eegminer.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/eegnet.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/eegnex.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/eegpt.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/eegsimpleconv.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/eegsym.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/eegtcnet.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/emg2qwerty.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/fbcnet.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/fbmsnet.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/hybrid.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/ifnet.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/interpolated.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/labram.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/luna.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/medformer.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/meta_neuromotor.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/msvtnet.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/mvpformer.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/patchedtransformer.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/reve.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/sccnet.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/shallow_fbcsp.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/signal_jepa.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/sinc_shallow.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/sleep_stager_blanco_2020.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/sleep_stager_chambon_2018.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/sparcnet.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/sstdpn.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/steegformer.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/syncnet.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/tcformer.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/tcn.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/tidnet.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/tsinception.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/usleep.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/modules/__init__.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/modules/activation.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/modules/attention.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/modules/blocks.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/modules/convolution.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/modules/dance_modules.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/modules/filter.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/modules/interpolation.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/modules/layers.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/modules/linear.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/modules/parametrization.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/modules/stats.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/modules/util.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/modules/wrapper.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/preprocessing/__init__.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/preprocessing/mne_preprocess.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/preprocessing/preprocess.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/preprocessing/util.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/preprocessing/windowers.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/samplers/__init__.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/samplers/base.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/samplers/ssl.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/training/__init__.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/training/callbacks.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/training/losses.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/training/scoring.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/util.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/visualization/__init__.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/visualization/attribution.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/visualization/confusion_matrices.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/visualization/frequency.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/visualization/metrics.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/visualization/sanity.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/visualization/topology.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode.egg-info/dependency_links.txt +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode.egg-info/requires.txt +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode.egg-info/top_level.txt +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/docs/Makefile +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/docs/_templates/autosummary/class.rst +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/docs/_templates/autosummary/class_in_subdir.rst +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/docs/_templates/autosummary/function.rst +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/docs/_templates/autosummary/function_in_subdir.rst +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/docs/cite.rst +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/docs/conf.py +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/docs/help.rst +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/docs/index.rst +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/docs/install/install.rst +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/docs/install/install_pip.rst +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/docs/install/install_source.rst +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/docs/models/categorization/attention.rst +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/docs/models/categorization/channel.rst +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/docs/models/categorization/convolution.rst +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/docs/models/categorization/filterbank.rst +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/docs/models/categorization/gnn.rst +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/docs/models/categorization/interpretable.rst +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/docs/models/categorization/lbm.rst +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/docs/models/categorization/recurrent.rst +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/docs/models/categorization/spd.rst +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/docs/models/models.rst +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/docs/models/models_categorization.rst +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/docs/models/models_table.rst +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/docs/models/models_visualization.rst +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/docs/sg_execution_times.rst +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/pyproject.toml +0 -0
- {braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: braindecode
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.8.0.dev580
|
|
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>
|
|
@@ -228,8 +228,9 @@ class EEGClassifier(_EEGNeuralNet, NeuralNetClassifier):
|
|
|
228
228
|
if return_targets:
|
|
229
229
|
return preds, X.get_metadata()["target"].to_numpy()
|
|
230
230
|
return preds
|
|
231
|
+
self.check_is_fitted()
|
|
231
232
|
return predict_trials(
|
|
232
|
-
module=self.
|
|
233
|
+
module=self.module_,
|
|
233
234
|
dataset=X,
|
|
234
235
|
return_targets=return_targets,
|
|
235
236
|
batch_size=self.batch_size,
|
{braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/datasets/sleep_physionet.py
RENAMED
|
@@ -117,9 +117,15 @@ class SleepPhysionet(BaseConcatDataset):
|
|
|
117
117
|
sleep_event_inds = np.where(mask)[0]
|
|
118
118
|
|
|
119
119
|
# Crop raw
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
120
|
+
a_tmin = annots[sleep_event_inds[0]]
|
|
121
|
+
a_tmax = annots[sleep_event_inds[-1]]
|
|
122
|
+
tmin = a_tmin["onset"] - crop_wake_mins * 60
|
|
123
|
+
tmax = a_tmax["onset"] + a_tmax["duration"] + crop_wake_mins * 60
|
|
124
|
+
raw.crop(
|
|
125
|
+
tmin=max(tmin, raw.times[0]),
|
|
126
|
+
tmax=min(tmax, raw.times[-1] + 1 / raw.info["sfreq"]),
|
|
127
|
+
include_tmax=False,
|
|
128
|
+
)
|
|
123
129
|
|
|
124
130
|
# Rename EEG channels
|
|
125
131
|
ch_names = {i: i.replace("EEG ", "") for i in raw.ch_names if "EEG" in i}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
# Authors: Bruno Aristimunha <b.aristimunha@gmail.com>
|
|
2
2
|
# Pierre Guetschel <pierre.guetschel@gmail.com>
|
|
3
|
+
# Sarthak Tayal <sarthaktayal2@gmail.com>
|
|
3
4
|
#
|
|
4
5
|
# License: BSD (3-clause)
|
|
5
6
|
|
|
@@ -126,7 +127,8 @@ class _EEGNeuralNet(NeuralNet, abc.ABC):
|
|
|
126
127
|
self._last_window_inds_ = None
|
|
127
128
|
|
|
128
129
|
def predict_with_window_inds_and_ys(self, dataset):
|
|
129
|
-
self.module.
|
|
130
|
+
# self.module can still be a name or a class, self.module_ is the built one
|
|
131
|
+
self.module_.eval()
|
|
130
132
|
preds = []
|
|
131
133
|
i_window_in_trials = []
|
|
132
134
|
i_window_stops = []
|
|
@@ -142,7 +144,7 @@ class _EEGNeuralNet(NeuralNet, abc.ABC):
|
|
|
142
144
|
i_window_in_trials.append(i[0].cpu().numpy())
|
|
143
145
|
i_window_stops.append(i[2].cpu().numpy())
|
|
144
146
|
with torch.no_grad():
|
|
145
|
-
preds.append(to_numpy(self.
|
|
147
|
+
preds.append(to_numpy(self.module_.forward(X.to(self.device))))
|
|
146
148
|
window_ys.append(y.cpu().numpy())
|
|
147
149
|
preds = np.concatenate(preds)
|
|
148
150
|
i_window_in_trials = np.concatenate(i_window_in_trials)
|
|
@@ -71,6 +71,7 @@ from .util import (
|
|
|
71
71
|
models_mandatory_parameters,
|
|
72
72
|
positions_from_chs_info,
|
|
73
73
|
)
|
|
74
|
+
from .zuna import ZUNA
|
|
74
75
|
|
|
75
76
|
# Call this last in order to make sure the dataset list is populated with
|
|
76
77
|
# the models imported in this file.
|
|
@@ -145,6 +146,7 @@ __all__ = [
|
|
|
145
146
|
"TIDNet",
|
|
146
147
|
"TSception",
|
|
147
148
|
"USleep",
|
|
149
|
+
"ZUNA",
|
|
148
150
|
"build_model_config",
|
|
149
151
|
"_init_models_dict",
|
|
150
152
|
"models_mandatory_parameters",
|
{braindecode-1.7.0.dev183981614 → braindecode-1.8.0.dev580}/braindecode/models/fblightconvnet.py
RENAMED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
# Authors: Sarthak Tayal <sarthaktayal2@gmail.com>
|
|
2
|
+
#
|
|
3
|
+
# License: BSD-3
|
|
4
|
+
|
|
1
5
|
from __future__ import annotations
|
|
2
6
|
|
|
3
7
|
from typing import Optional
|
|
@@ -61,15 +65,18 @@ class FBLightConvNet(EEGModuleMixin, nn.Module):
|
|
|
61
65
|
|
|
62
66
|
Parameters
|
|
63
67
|
----------
|
|
64
|
-
n_bands : int or None or list of tuple of int, default=
|
|
68
|
+
n_bands : int or None or list of tuple of int, default=9
|
|
65
69
|
Number of frequency bands or a list of frequency band tuples. If a list of tuples is provided,
|
|
66
70
|
each tuple defines the lower and upper bounds of a frequency band.
|
|
67
71
|
n_filters_spat : int, default=32
|
|
68
72
|
Number of spatial filters in the depthwise convolutional layer.
|
|
69
73
|
n_dim : int, default=3
|
|
70
74
|
Number of dimensions for the temporal reduction layer.
|
|
71
|
-
|
|
72
|
-
|
|
75
|
+
win_len : int, default=250
|
|
76
|
+
Length in samples of the non-overlapping temporal windows the signal is
|
|
77
|
+
split into before the variance based feature extraction. The number of
|
|
78
|
+
windows passed to the attention module is ``n_times // win_len``, so
|
|
79
|
+
``n_times`` has to be at least ``win_len``.
|
|
73
80
|
activation : nn.Module, default=nn.ELU
|
|
74
81
|
Activation function class to apply after convolutional layers.
|
|
75
82
|
verbose : bool, default=False
|
|
@@ -82,6 +89,9 @@ class FBLightConvNet(EEGModuleMixin, nn.Module):
|
|
|
82
89
|
If True, applies softmax to the attention weights.
|
|
83
90
|
bias : bool, default=False
|
|
84
91
|
If True, includes a bias term in the convolutional layers.
|
|
92
|
+
stride_factor : int or None, default=None
|
|
93
|
+
Deprecated and ignored, it will be removed in a future release. The
|
|
94
|
+
temporal segmentation of this model is controlled by ``win_len``.
|
|
85
95
|
|
|
86
96
|
References
|
|
87
97
|
----------
|
|
@@ -106,7 +116,7 @@ class FBLightConvNet(EEGModuleMixin, nn.Module):
|
|
|
106
116
|
n_bands=9,
|
|
107
117
|
n_filters_spat: int = 32,
|
|
108
118
|
n_dim: int = 3,
|
|
109
|
-
stride_factor: int =
|
|
119
|
+
stride_factor: Optional[int] = None,
|
|
110
120
|
win_len: int = 250,
|
|
111
121
|
heads: int = 8,
|
|
112
122
|
weight_softmax: bool = True,
|
|
@@ -125,6 +135,14 @@ class FBLightConvNet(EEGModuleMixin, nn.Module):
|
|
|
125
135
|
)
|
|
126
136
|
del n_outputs, n_chans, chs_info, n_times, input_window_seconds, sfreq
|
|
127
137
|
|
|
138
|
+
if stride_factor is not None:
|
|
139
|
+
warn(
|
|
140
|
+
"The parameter `stride_factor` is deprecated and ignored, it "
|
|
141
|
+
"will be removed in a future release. The temporal "
|
|
142
|
+
"segmentation of FBLightConvNet is set by `win_len`.",
|
|
143
|
+
DeprecationWarning,
|
|
144
|
+
)
|
|
145
|
+
|
|
128
146
|
# Parameters
|
|
129
147
|
self.n_bands = n_bands
|
|
130
148
|
self.n_filters_spat = n_filters_spat
|
|
@@ -138,6 +156,13 @@ class FBLightConvNet(EEGModuleMixin, nn.Module):
|
|
|
138
156
|
self.filter_parameters = filter_parameters or {}
|
|
139
157
|
|
|
140
158
|
# Checkers
|
|
159
|
+
if self.n_times < self.win_len:
|
|
160
|
+
raise ValueError(
|
|
161
|
+
f"Time dimension ({self.n_times}) is shorter than win_len "
|
|
162
|
+
f"({self.win_len}), so the model cannot build a single "
|
|
163
|
+
f"temporal window. Pass a longer input or lower `win_len`."
|
|
164
|
+
)
|
|
165
|
+
|
|
141
166
|
self.n_times_truncated = self.n_times
|
|
142
167
|
if self.n_times % self.win_len != 0:
|
|
143
168
|
warn(
|
|
@@ -194,10 +219,12 @@ class FBLightConvNet(EEGModuleMixin, nn.Module):
|
|
|
194
219
|
def forward(self, x: torch.Tensor) -> torch.Tensor:
|
|
195
220
|
"""
|
|
196
221
|
Forward pass of the FBLightConvNet model.
|
|
222
|
+
|
|
197
223
|
Parameters
|
|
198
224
|
----------
|
|
199
225
|
x : torch.Tensor
|
|
200
226
|
Input tensor with shape (batch_size, n_chans, n_times).
|
|
227
|
+
|
|
201
228
|
Returns
|
|
202
229
|
-------
|
|
203
230
|
torch.Tensor
|
|
@@ -61,3 +61,4 @@ EEGDINO,General,Classification,200,"n_chans, n_outputs, n_times",4539698,"EEGDIN
|
|
|
61
61
|
DANCE,General,Event Detection,200,"n_chans, n_outputs, n_times, sfreq, chs_info",29813542,"DANCE(n_chans=19, n_outputs=4, n_times=6400, sfreq=200, input_window_seconds=32.0, chs_info=[{'ch_name': f'E{i+1}', 'kind': 'eeg', 'loc': numpy.random.default_rng(2024).random(12)} for i in range(19)])","Convolution,Attention/Transformer,Channel",EEG
|
|
62
62
|
STEEGFormer,General,Classification,250,"n_chans, n_outputs, n_times",25305604,"STEEGFormer(n_chans=22, n_outputs=4, n_times=1000)","Attention/Transformer,Foundation Model",EEG
|
|
63
63
|
MVPFormer,General,"Prediction, Embedding",512,"n_chans, n_outputs, n_times, sfreq",3356978,"MVPFormer(n_chans=22, n_outputs=4, n_times=2000, sfreq=100)","Foundation Model,Attention/Transformer",EEG
|
|
64
|
+
ZUNA,General,"Classification,Embedding",256,"chs_info, n_outputs, n_times",172104100,"ZUNA(chs_info=<user>, n_outputs=4, n_times=1280)","Foundation Model,Channel,Attention/Transformer",EEG
|
|
@@ -503,6 +503,15 @@ models_mandatory_parameters: list[
|
|
|
503
503
|
],
|
|
504
504
|
},
|
|
505
505
|
),
|
|
506
|
+
(
|
|
507
|
+
"ZUNA",
|
|
508
|
+
["chs_info", "n_outputs", "n_times"],
|
|
509
|
+
{
|
|
510
|
+
"n_times": 1280,
|
|
511
|
+
"sfreq": 256.0,
|
|
512
|
+
"input_window_seconds": 5.0,
|
|
513
|
+
},
|
|
514
|
+
),
|
|
506
515
|
]
|
|
507
516
|
|
|
508
517
|
################################################################
|