Braindecode 1.6.1.dev169782001__tar.gz → 1.6.1.dev171935310__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.6.1.dev169782001/braindecode.egg-info → braindecode-1.6.1.dev171935310}/PKG-INFO +1 -1
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/functional/__init__.py +0 -2
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/functional/functions.py +0 -39
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/biot.py +10 -3
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/fbmsnet.py +5 -18
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/medformer.py +22 -4
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/steegformer.py +8 -2
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/summary.csv +61 -61
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/modules/__init__.py +1 -2
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/modules/activation.py +0 -34
- braindecode-1.6.1.dev171935310/braindecode/version.py +1 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310/braindecode.egg-info}/PKG-INFO +1 -1
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/docs/api.rst +0 -2
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/docs/conf.py +0 -14
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/docs/models/models_table.rst +1 -4
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/docs/whats_new.rst +0 -22
- braindecode-1.6.1.dev169782001/braindecode/version.py +0 -1
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/LICENSE.txt +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/MANIFEST.in +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/NOTICE.txt +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/README.rst +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/__init__.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/augmentation/__init__.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/augmentation/base.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/augmentation/functional.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/augmentation/transforms.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/classifier.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/datasets/__init__.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/datasets/base.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/datasets/bbci.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/datasets/bcicomp.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/datasets/bids/__init__.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/datasets/bids/datasets.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/datasets/bids/format.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/datasets/bids/hub.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/datasets/bids/hub_format.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/datasets/bids/hub_io.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/datasets/bids/hub_validation.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/datasets/bids/iterable.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/datasets/chb_mit.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/datasets/collate.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/datasets/mne.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/datasets/moabb.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/datasets/nmt.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/datasets/registry.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/datasets/siena.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/datasets/sleep_physio_challe_18.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/datasets/sleep_physionet.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/datasets/tuh.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/datasets/utils.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/datasets/xy.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/datautil/__init__.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/datautil/channel_utils.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/datautil/hub_formats.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/datautil/serialization.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/datautil/util.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/eegneuralnet.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/functional/initialization.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/__init__.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/atcnet.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/attentionbasenet.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/attn_sleep.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/base.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/bendr.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/brainmodule.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/cbramod.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/codebrain.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/config.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/contrawr.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/ctnet.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/deep4.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/deepsleepnet.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/dgcnn.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/eegconformer.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/eegdino.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/eeginception_erp.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/eeginception_mi.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/eegitnet.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/eegminer.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/eegnet.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/eegnex.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/eegpt.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/eegsimpleconv.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/eegsym.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/eegtcnet.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/emg2qwerty.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/fbcnet.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/fblightconvnet.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/hybrid.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/ifnet.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/interpolated.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/labram.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/luna.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/meta_neuromotor.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/msvtnet.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/patchedtransformer.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/reve.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/sccnet.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/shallow_fbcsp.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/signal_jepa.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/sinc_shallow.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/sleep_stager_blanco_2020.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/sleep_stager_chambon_2018.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/sparcnet.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/sstdpn.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/syncnet.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/tcformer.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/tcn.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/tidnet.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/tsinception.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/usleep.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/util.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/modules/attention.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/modules/blocks.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/modules/convolution.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/modules/filter.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/modules/interpolation.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/modules/layers.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/modules/linear.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/modules/parametrization.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/modules/stats.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/modules/util.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/modules/wrapper.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/preprocessing/__init__.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/preprocessing/eegprep_preprocess.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/preprocessing/mne_preprocess.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/preprocessing/preprocess.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/preprocessing/util.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/preprocessing/windowers.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/regressor.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/samplers/__init__.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/samplers/base.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/samplers/ssl.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/training/__init__.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/training/callbacks.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/training/losses.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/training/scoring.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/util.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/visualization/__init__.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/visualization/attribution.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/visualization/confusion_matrices.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/visualization/frequency.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/visualization/metrics.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/visualization/sanity.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/visualization/topology.py +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode.egg-info/SOURCES.txt +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode.egg-info/dependency_links.txt +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode.egg-info/requires.txt +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode.egg-info/top_level.txt +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/docs/Makefile +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/docs/_templates/autosummary/class.rst +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/docs/_templates/autosummary/class_in_subdir.rst +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/docs/_templates/autosummary/function.rst +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/docs/_templates/autosummary/function_in_subdir.rst +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/docs/cite.rst +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/docs/help.rst +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/docs/index.rst +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/docs/install/install.rst +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/docs/install/install_pip.rst +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/docs/install/install_source.rst +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/docs/models/categorization/attention.rst +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/docs/models/categorization/channel.rst +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/docs/models/categorization/convolution.rst +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/docs/models/categorization/filterbank.rst +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/docs/models/categorization/gnn.rst +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/docs/models/categorization/interpretable.rst +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/docs/models/categorization/lbm.rst +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/docs/models/categorization/recurrent.rst +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/docs/models/categorization/spd.rst +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/docs/models/models.rst +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/docs/models/models_categorization.rst +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/docs/models/models_visualization.rst +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/docs/sg_execution_times.rst +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/pyproject.toml +0 -0
- {braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/setup.cfg +0 -0
{braindecode-1.6.1.dev169782001/braindecode.egg-info → braindecode-1.6.1.dev171935310}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: braindecode
|
|
3
|
-
Version: 1.6.1.
|
|
3
|
+
Version: 1.6.1.dev171935310
|
|
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.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/functional/__init__.py
RENAMED
|
@@ -5,7 +5,6 @@ from .functions import (
|
|
|
5
5
|
identity,
|
|
6
6
|
plv_time,
|
|
7
7
|
safe_log,
|
|
8
|
-
sinusoidal_positional_encoding,
|
|
9
8
|
square,
|
|
10
9
|
)
|
|
11
10
|
from .initialization import glorot_weight_zero_bias, rescale_parameter
|
|
@@ -17,7 +16,6 @@ __all__ = [
|
|
|
17
16
|
"identity",
|
|
18
17
|
"plv_time",
|
|
19
18
|
"safe_log",
|
|
20
|
-
"sinusoidal_positional_encoding",
|
|
21
19
|
"square",
|
|
22
20
|
"glorot_weight_zero_bias",
|
|
23
21
|
"rescale_parameter",
|
|
@@ -2,8 +2,6 @@
|
|
|
2
2
|
#
|
|
3
3
|
# License: BSD (3-clause)
|
|
4
4
|
|
|
5
|
-
import math
|
|
6
|
-
|
|
7
5
|
import torch
|
|
8
6
|
import torch.nn.functional as F
|
|
9
7
|
|
|
@@ -251,40 +249,3 @@ def plv_time(x, forward_fourier=True, epsilon: float = 1e-6):
|
|
|
251
249
|
)
|
|
252
250
|
|
|
253
251
|
return plv_matrix
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
def sinusoidal_positional_encoding(n_positions: int, dim: int) -> torch.Tensor:
|
|
257
|
-
r"""Fixed sine/cosine positional-encoding table of shape ``(n_positions, dim)``.
|
|
258
|
-
|
|
259
|
-
The standard encoding of Vaswani et al. (2017): for position :math:`p` and
|
|
260
|
-
channel :math:`i`, :math:`pe[p, 2i] = \sin(p / 10000^{2i/d})` and
|
|
261
|
-
:math:`pe[p, 2i+1] = \cos(p / 10000^{2i/d})`. PyTorch ships no sinusoidal
|
|
262
|
-
encoding (``nn.Embedding`` is a *learned* lookup), so braindecode models that
|
|
263
|
-
need one share this primitive instead of re-deriving it. An odd ``dim`` is
|
|
264
|
-
computed on the next even width and truncated, reproducing the per-model
|
|
265
|
-
wrappers (e.g. :class:`~braindecode.models.medformer` odd-``d_model``).
|
|
266
|
-
|
|
267
|
-
Parameters
|
|
268
|
-
----------
|
|
269
|
-
n_positions : int
|
|
270
|
-
Number of positions (sequence length) to encode.
|
|
271
|
-
dim : int
|
|
272
|
-
Embedding dimension of each position.
|
|
273
|
-
|
|
274
|
-
Returns
|
|
275
|
-
-------
|
|
276
|
-
torch.Tensor
|
|
277
|
-
``(n_positions, dim)`` float table; callers add their own batch axis,
|
|
278
|
-
dropout, or offset.
|
|
279
|
-
"""
|
|
280
|
-
dim_even = dim + (dim % 2)
|
|
281
|
-
position = torch.arange(n_positions).unsqueeze(1).float()
|
|
282
|
-
div_term = torch.exp(
|
|
283
|
-
torch.arange(0, dim_even, 2).float() * (-math.log(10000.0) / dim_even)
|
|
284
|
-
)
|
|
285
|
-
pe = torch.zeros(n_positions, dim_even)
|
|
286
|
-
pe[:, 0::2] = torch.sin(position * div_term)
|
|
287
|
-
pe[:, 1::2] = torch.cos(position * div_term)
|
|
288
|
-
# ``.contiguous()`` so an odd-``dim`` truncation owns tight storage -- a
|
|
289
|
-
# non-contiguous view over the padded width breaks safetensors buffer saving.
|
|
290
|
-
return pe[:, :dim].contiguous()
|
{braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/biot.py
RENAMED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import math
|
|
1
2
|
from warnings import warn
|
|
2
3
|
|
|
3
4
|
import numpy as np
|
|
@@ -5,7 +6,6 @@ import torch
|
|
|
5
6
|
import torch.nn as nn
|
|
6
7
|
from linear_attention_transformer import LinearAttentionTransformer
|
|
7
8
|
|
|
8
|
-
from braindecode.functional import sinusoidal_positional_encoding
|
|
9
9
|
from braindecode.models.base import EEGModuleMixin
|
|
10
10
|
|
|
11
11
|
# -----------------------------------------------------------------------------
|
|
@@ -388,8 +388,15 @@ class _PositionalEncoding(nn.Module):
|
|
|
388
388
|
def __init__(self, emb_size: int, drop_prob: float = 0.1, max_len: int = 1000):
|
|
389
389
|
super(_PositionalEncoding, self).__init__()
|
|
390
390
|
|
|
391
|
-
# Compute the positional encodings once
|
|
392
|
-
pe =
|
|
391
|
+
# Compute the positional encodings once in log space.
|
|
392
|
+
pe = torch.zeros(max_len, emb_size)
|
|
393
|
+
position = torch.arange(0, max_len).unsqueeze(1).float()
|
|
394
|
+
div_term = torch.exp(
|
|
395
|
+
torch.arange(0, emb_size, 2).float() * -(math.log(10000.0) / emb_size)
|
|
396
|
+
)
|
|
397
|
+
pe[:, 0::2] = torch.sin(position * div_term)
|
|
398
|
+
pe[:, 1::2] = torch.cos(position * div_term)
|
|
399
|
+
pe = pe.unsqueeze(0)
|
|
393
400
|
self.register_buffer("pe", pe)
|
|
394
401
|
self.dropout = nn.Dropout(p=drop_prob)
|
|
395
402
|
|
{braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/fbmsnet.py
RENAMED
|
@@ -75,9 +75,6 @@ class FBMSNet(EEGModuleMixin, nn.Module):
|
|
|
75
75
|
Maximum norm constraint for the convolutional layers.
|
|
76
76
|
linear_max_norm : float, default=0.5
|
|
77
77
|
Maximum norm constraint for the linear layers.
|
|
78
|
-
return_features : bool, default=False
|
|
79
|
-
If True, the forward method returns the class logits and the flattened
|
|
80
|
-
features before the final classification layer.
|
|
81
78
|
filter_parameters : dict, default=None
|
|
82
79
|
Dictionary of parameters to use for the FilterBankLayer.
|
|
83
80
|
If None, a default Chebyshev Type II filter with transition bandwidth of
|
|
@@ -119,7 +116,6 @@ class FBMSNet(EEGModuleMixin, nn.Module):
|
|
|
119
116
|
linear_max_norm: float = 0.5,
|
|
120
117
|
verbose: bool = False,
|
|
121
118
|
filter_parameters: dict[Any, Any] | None = None,
|
|
122
|
-
return_features: bool = False,
|
|
123
119
|
):
|
|
124
120
|
super().__init__(
|
|
125
121
|
n_chans=n_chans,
|
|
@@ -141,7 +137,6 @@ class FBMSNet(EEGModuleMixin, nn.Module):
|
|
|
141
137
|
self.kernels_weights = kernels_weights
|
|
142
138
|
self.filter_parameters = filter_parameters or {}
|
|
143
139
|
self.out_channels_spatial = self.n_filters_spat * self.dilatability
|
|
144
|
-
self.return_features = return_features
|
|
145
140
|
|
|
146
141
|
# Checkers
|
|
147
142
|
if temporal_layer not in _valid_layers:
|
|
@@ -228,12 +223,8 @@ class FBMSNet(EEGModuleMixin, nn.Module):
|
|
|
228
223
|
|
|
229
224
|
Returns
|
|
230
225
|
-------
|
|
231
|
-
torch.Tensor
|
|
232
|
-
Output tensor with shape (batch_size, n_outputs).
|
|
233
|
-
``return_features`` is True, a tuple containing the output tensor
|
|
234
|
-
and flattened features with shape
|
|
235
|
-
(batch_size, out_channels_spatial * stride_factor) is returned.
|
|
236
|
-
In TorchScript mode, only the output tensor is returned.
|
|
226
|
+
torch.Tensor
|
|
227
|
+
Output tensor with shape (batch_size, n_outputs).
|
|
237
228
|
"""
|
|
238
229
|
batch, _, _ = x.shape
|
|
239
230
|
|
|
@@ -262,16 +253,12 @@ class FBMSNet(EEGModuleMixin, nn.Module):
|
|
|
262
253
|
# shape: (batch, self.out_channels_spatial, self.stride_factor, 1)
|
|
263
254
|
|
|
264
255
|
# Flatten and classify
|
|
265
|
-
|
|
256
|
+
x = self.flatten_layer(x)
|
|
266
257
|
# shape: (batch, self.out_channels_spatial*self.stride_factor)
|
|
267
258
|
|
|
268
|
-
|
|
259
|
+
x = self.final_layer(x)
|
|
269
260
|
# shape: (batch, n_outputs)
|
|
270
|
-
|
|
271
|
-
return logits
|
|
272
|
-
if self.return_features:
|
|
273
|
-
return logits, features
|
|
274
|
-
return logits
|
|
261
|
+
return x
|
|
275
262
|
|
|
276
263
|
|
|
277
264
|
class _MixedConv2d(nn.Module):
|
{braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/medformer.py
RENAMED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
"""Medformer: A Multi-Granularity Patching Transformer for Medical Time-Series Classification."""
|
|
8
8
|
|
|
9
|
+
import math
|
|
9
10
|
from math import sqrt
|
|
10
11
|
from typing import List, Optional, Tuple
|
|
11
12
|
|
|
@@ -13,7 +14,6 @@ import numpy as np
|
|
|
13
14
|
import torch
|
|
14
15
|
import torch.nn as nn
|
|
15
16
|
|
|
16
|
-
from braindecode.functional import sinusoidal_positional_encoding
|
|
17
17
|
from braindecode.models.base import EEGModuleMixin
|
|
18
18
|
|
|
19
19
|
|
|
@@ -329,10 +329,28 @@ class MEDFormer(EEGModuleMixin, nn.Module):
|
|
|
329
329
|
class _PositionalEmbedding(nn.Module):
|
|
330
330
|
def __init__(self, d_model: int, max_len: int = 5000):
|
|
331
331
|
super().__init__()
|
|
332
|
+
# If d_model is odd, temporarily work with d_model + 1.
|
|
333
|
+
if d_model % 2 == 1:
|
|
334
|
+
d_model_adj = d_model + 1
|
|
335
|
+
else:
|
|
336
|
+
d_model_adj = d_model
|
|
332
337
|
self.d_model = d_model # store the original dimension
|
|
333
|
-
|
|
334
|
-
#
|
|
335
|
-
pe =
|
|
338
|
+
|
|
339
|
+
# Create a pe tensor of size (max_len, d_model_adj)
|
|
340
|
+
pe = torch.zeros(max_len, d_model_adj).float()
|
|
341
|
+
pe.requires_grad = False
|
|
342
|
+
|
|
343
|
+
# Compute the sinusoidal factors.
|
|
344
|
+
position = torch.arange(0, max_len).float().unsqueeze(1)
|
|
345
|
+
# Use d_model_adj in the denominator so that the frequencies are computed over an even number.
|
|
346
|
+
div_term = torch.exp(
|
|
347
|
+
torch.arange(0, d_model_adj, 2).float() * (-math.log(10000.0) / d_model_adj)
|
|
348
|
+
)
|
|
349
|
+
pe[:, 0::2] = torch.sin(position * div_term)
|
|
350
|
+
pe[:, 1::2] = torch.cos(position * div_term)
|
|
351
|
+
|
|
352
|
+
# Unsqueeze to shape (1, max_len, d_model_adj)
|
|
353
|
+
pe = pe.unsqueeze(0)
|
|
336
354
|
self.register_buffer("pe", pe)
|
|
337
355
|
|
|
338
356
|
def forward(self, x: torch.Tensor) -> torch.Tensor:
|
{braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/steegformer.py
RENAMED
|
@@ -9,6 +9,7 @@ Port of Yang et al. (2026), https://github.com/LiuyinYang1101/STEEGFormer
|
|
|
9
9
|
from __future__ import annotations
|
|
10
10
|
|
|
11
11
|
import json
|
|
12
|
+
import math
|
|
12
13
|
import warnings
|
|
13
14
|
from functools import lru_cache
|
|
14
15
|
|
|
@@ -17,7 +18,6 @@ from einops import rearrange
|
|
|
17
18
|
from einops.layers.torch import Rearrange
|
|
18
19
|
from torch import nn
|
|
19
20
|
|
|
20
|
-
from braindecode.functional import sinusoidal_positional_encoding
|
|
21
21
|
from braindecode.models.base import EEGModuleMixin
|
|
22
22
|
from braindecode.modules import (
|
|
23
23
|
DropPath,
|
|
@@ -550,7 +550,13 @@ class _TemporalPositionalEncoding(nn.Module):
|
|
|
550
550
|
def __init__(self, embed_dim: int, max_len: int = 2048):
|
|
551
551
|
super().__init__()
|
|
552
552
|
self.max_len = max_len
|
|
553
|
-
|
|
553
|
+
position = torch.arange(max_len).unsqueeze(1)
|
|
554
|
+
div_term = torch.exp(
|
|
555
|
+
torch.arange(0, embed_dim, 2) * (-math.log(10000.0) / embed_dim)
|
|
556
|
+
)
|
|
557
|
+
pe = torch.zeros(max_len, embed_dim)
|
|
558
|
+
pe[:, 0::2] = torch.sin(position * div_term)
|
|
559
|
+
pe[:, 1::2] = torch.cos(position * div_term)
|
|
554
560
|
# Non-persistent: deterministic, regenerated identically at init.
|
|
555
561
|
self.register_buffer("pe", pe, persistent=False)
|
|
556
562
|
|
{braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/models/summary.csv
RENAMED
|
@@ -1,61 +1,61 @@
|
|
|
1
|
-
Model,Application,Type,Sampling Frequency (Hz),Hyperparameters,#Parameters,get_#Parameters,Categorization
|
|
2
|
-
ATCNet,General,Prediction,250,"n_chans, n_outputs, n_times",113732,"ATCNet(n_chans=22, n_outputs=4, n_times=1000)","Convolution,Recurrent,Attention/Transformer"
|
|
3
|
-
AttentionBaseNet,Motor Imagery,Prediction,250,"n_chans, n_outputs, n_times",3692,"AttentionBaseNet(n_chans=22, n_outputs=4, n_times=1000)","Convolution,Attention/Transformer"
|
|
4
|
-
BDTCN,Normal Abnormal,Prediction,100,"n_chans, n_outputs, n_times",456502,"BDTCN(n_chans=21, n_outputs=2, n_times=6000, n_blocks=5, n_filters=55, kernel_size=16)","Convolution,Recurrent"
|
|
5
|
-
BIOT,"Sleep Staging, Epilepsy",Prediction,200,"n_chans, n_outputs",3183879,"BIOT(n_chans=2, n_outputs=5, n_times=6000)","Foundation Model"
|
|
6
|
-
CBraMod,General,"Prediction, Embedding",200,"n_outputs",4924000,"CBraMod(n_outputs=2)","Foundation Model"
|
|
7
|
-
CodeBrain,General,"Prediction, Embedding",200,"n_chans, n_outputs, n_times",15238802,"CodeBrain(n_chans=19, n_outputs=2, n_times=6000)","Foundation Model,Attention/Transformer"
|
|
8
|
-
ContraWR,Sleep Staging,"Prediction, Embedding",125,"n_chans, n_outputs, sfreq",1160165,"ContraWR(n_chans=2, n_outputs=5, n_times=3750, emb_size=256, sfreq=125)",Convolution
|
|
9
|
-
CTNet,Motor Imagery,Prediction,250,"n_chans, n_outputs, n_times",26900,"CTNet(n_chans=22, n_outputs=4, n_times=1000, n_filters_time=8, kernel_size=16, num_heads=2, embed_dim=16)","Convolution,Attention/Transformer"
|
|
10
|
-
Deep4Net,General,Prediction,250,"n_chans, n_outputs, n_times",282879,"Deep4Net(n_chans=22, n_outputs=4, n_times=1000)","Convolution"
|
|
11
|
-
DeepSleepNet,Sleep Staging,Prediction,256,"n_chans, n_outputs",24744837,"DeepSleepNet(n_chans=1, n_outputs=5, n_times=7680, sfreq=256)","Convolution,Recurrent"
|
|
12
|
-
EEGConformer,General,Prediction,250,"n_chans, n_outputs, n_times",789572,"EEGConformer(n_chans=22, n_outputs=4, n_times=1000)","Convolution,Attention/Transformer"
|
|
13
|
-
EEGPT,General,Prediction,256,"n_chans, n_outputs, n_times",25477635,"EEGPT(n_chans=58, n_outputs=4, n_times=1024)","Foundation Model,Attention/Transformer"
|
|
14
|
-
EEGInceptionERP,"ERP, SSVEP",Prediction,128,"n_chans, n_outputs",14926,"EEGInceptionERP(n_chans=8, n_outputs=2, n_times=128, sfreq=128)","Convolution"
|
|
15
|
-
EEGInceptionMI,Motor Imagery,Prediction,250,"n_chans, n_outputs, n_times",558028,"EEGInceptionMI(n_chans=22, n_outputs=4, n_times=1000, n_convs=5, n_filters=12)","Convolution"
|
|
16
|
-
EEGITNet,Motor Imagery,Prediction,125,"n_chans, n_outputs, n_times",5212,"EEGITNet(n_chans=22, n_outputs=4, n_times=500)","Convolution,Recurrent"
|
|
17
|
-
EEGNet,General,Prediction,128,"n_chans, n_outputs, n_times",2484,"EEGNet(n_chans=22, n_outputs=4, n_times=512)","Convolution"
|
|
18
|
-
EEGNeX,Motor Imagery,Prediction,125,"n_chans, n_outputs, n_times",55940,"EEGNeX(n_chans=22, n_outputs=4, n_times=500)","Convolution"
|
|
19
|
-
EEGSym,Motor Imagery,Prediction,250,"n_chans, n_outputs, n_times, sfreq",299218,"EEGSym(n_chans=22, n_outputs=4, n_times=1000, sfreq=250)","Convolution,Channel"
|
|
20
|
-
EEGMiner,Emotion Recognition,Prediction,128,"n_chans, n_outputs, n_times, sfreq",7572,"EEGMiner(n_chans=62, n_outputs=2, n_times=2560, sfreq=128)","Convolution,Interpretability"
|
|
21
|
-
EEGSimpleConv,Motor Imagery,Prediction,80,"n_chans, n_outputs, sfreq",730404,"EEGSimpleConv(n_chans=22, n_outputs=4, n_times=320, sfreq=80)","Convolution"
|
|
22
|
-
EEGTCNet,Motor Imagery,Prediction,250,"n_chans, n_outputs",4516,"EEGTCNet(n_chans=22, n_outputs=4, n_times=1000, kern_length=32)","Convolution,Recurrent"
|
|
23
|
-
Labram,General,"Prediction, Embedding",200,"n_chans, n_outputs, n_times",5866180,"Labram(n_chans=22, n_outputs=4, n_times=1000, sfreq=250)","Convolution,Foundation Model"
|
|
24
|
-
MSVTNet,Motor Imagery,Prediction,250,"n_chans, n_outputs, n_times",75494," MSVTNet(n_chans=22, n_outputs=4, n_times=1000)","Convolution,Recurrent,Attention/Transformer"
|
|
25
|
-
SCCNet,Motor Imagery,Prediction,125,"n_chans, n_outputs, n_times, sfreq",12070,"SCCNet(n_chans=22, n_outputs=4, n_times=1000, sfreq=125)","Convolution"
|
|
26
|
-
SignalJEPA,"Motor Imagery, ERP, SSVEP",Embedding,128,"n_times, chs_info",3456882,"SignalJEPA(n_times=512, chs_info=Lee2019_MI().get_data(subjects=[1])[1]['0']['1train'].info[""chs""][:62])","Convolution,Channel,Foundation Model"
|
|
27
|
-
SignalJEPA_Contextual,"Motor Imagery, ERP, SSVEP",Prediction,128,"n_outputs, n_times, chs_info",3459184,"SignalJEPA_Contextual(n_outputs=2, input_window_seconds=4.19, sfreq=128, chs_info=Lee2019_MI().get_data(subjects=[1])[1]['0']['1train'].info[""chs""][:62])","Convolution,Channel,Foundation Model"
|
|
28
|
-
SignalJEPA_PostLocal,"Motor Imagery, ERP, SSVEP",Prediction,128,"n_chans, n_outputs, n_times",16142,"SignalJEPA_PostLocal(n_chans=62, n_outputs=2, input_window_seconds=4.19, sfreq=128)","Convolution,Channel,Foundation Model"
|
|
29
|
-
SignalJEPA_PreLocal,"Motor Imagery, ERP, SSVEP",Prediction,128,"n_outputs, n_times, chs_info",16142,"SignalJEPA_PreLocal(n_chans=62, n_outputs=2, input_window_seconds=4.19, sfreq=128)","Convolution,Channel,Foundation Model"
|
|
30
|
-
SincShallowNet,Motor Imagery,Prediction,250,"n_chans, n_outputs, n_times, sfreq",21892,"SincShallowNet(n_chans=22, n_outputs=4, n_times=1000, sfreq=250)","Convolution,Interpretability"
|
|
31
|
-
ShallowFBCSPNet,General,Prediction,250,"n_chans, n_outputs, n_times",46084,"ShallowFBCSPNet(n_chans=22, n_outputs=4, n_times=1000, sfreq=250)","Convolution"
|
|
32
|
-
SleepStagerBlanco2020,Sleep Staging,Prediction,100,"n_chans, n_outputs, n_times",2845,"SleepStagerBlanco2020(n_chans=2, n_outputs=5, n_times=3000, sfreq=100)","Convolution"
|
|
33
|
-
SleepStagerChambon2018,Sleep Staging,Prediction,128,"n_chans, n_outputs, n_times, sfreq",5835,"SleepStagerChambon2018(n_chans=2, n_outputs=5, n_times=3840, sfreq=128)","Convolution"
|
|
34
|
-
AttnSleep,Sleep Staging,Prediction,100,"n_chans, n_outputs, n_times, sfreq",719925,"AttnSleep(n_chans=2, n_outputs=5, n_times=3000, sfreq=100)","Convolution, Attention/Transformer"
|
|
35
|
-
SPARCNet,Epilepsy,Prediction,200,"n_chans, n_outputs, n_times",1141921,"SPARCNet(n_chans=16, n_outputs=6, n_times=2000, sfreq=200)","Convolution"
|
|
36
|
-
SyncNet,"Emotion Recognition, Alcoholism",Prediction,256,"n_chans, n_outputs, n_times",554,"SyncNet(n_chans=62, n_outputs=3, n_times=5120, sfreq=256)","Interpretability"
|
|
37
|
-
TSception,Emotion Recognition,Prediction,256,"n_chans, n_outputs, n_times, sfreq",2187206,"TSception(n_chans=62, n_outputs=3, n_times=5120, sfreq=256)","Convolution"
|
|
38
|
-
TIDNet,General,Prediction,250,"n_chans, n_outputs, n_times",240404,"TIDNet(n_chans=22, n_outputs=4, n_times=1000)","Convolution"
|
|
39
|
-
USleep,Sleep Staging,Prediction,128,"n_chans, n_outputs, n_times, sfreq",2482011,"USleep(n_chans=2, n_outputs=5, n_times=3000, sfreq=100)","Convolution"
|
|
40
|
-
FBCNet,Motor Imagery,Prediction,250,"n_chans, n_outputs, n_times, sfreq",11812,"FCNet(n_chans=22, n_outputs=4, n_times=1000, sfreq=250)","Convolution,FilterBank"
|
|
41
|
-
FBMSNet,Motor Imagery,Prediction,250,"n_chans, n_outputs, n_times, sfreq",16231,"FBMSNet(n_chans=22, n_outputs=4, n_times=1000, sfreq=250)","Convolution,FilterBank"
|
|
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
|
-
FBLightConvNet,Motor Imagery,Prediction,250,"n_chans, n_outputs, n_times, sfreq",6596,"FBLightConvNet(n_chans=22, n_outputs=4, n_times=1000, sfreq=250)","Convolution,FilterBank"
|
|
45
|
-
IFNet,Motor Imagery,Prediction,250,"n_chans, n_outputs, n_times, sfreq",9860,"IFNet(n_chans=22, n_outputs=4, n_times=1000, sfreq=250)","Convolution,FilterBank"
|
|
46
|
-
BrainModule,Speech Decoding,Prediction,250,"n_chans, n_outputs, n_times, sfreq",6186909,"BrainModule(n_chans=64, n_outputs=29, n_times=160, sfreq=1000)","Convolution"
|
|
47
|
-
PBT,General,Prediction,250,"n_chans, n_outputs, n_times",818948,"PBT(n_chans=22, n_outputs=4, n_times=1000, sfreq=250)","Foundation Model"
|
|
48
|
-
SSTDPN,Motor Imagery,Prediction,250,"n_chans, n_outputs, n_times",19502,"SSTDPN(n_chans=22, n_outputs=4, n_times=1000)","Convolution,Attention/Transformer"
|
|
49
|
-
BENDR,General,"Prediction, Embedding",250,"n_chans, n_times, n_outputs",157141049,"BENDR(n_chans=22, n_outputs=4, n_times=1000)","Foundation Model,Convolution"
|
|
50
|
-
LUNA,General,"Prediction, Embedding",128,"n_chans, n_times, sfreq, chs_info",7100731,"LUNA(n_chans=22, n_times=512, sfreq=128)","Convolution,Channel,Foundation Model"
|
|
51
|
-
MEDFormer,General,Prediction,250,"n_chans, n_outputs, n_times",5313924,"MEDFormer(n_chans=22, n_outputs=4, n_times=1000)","Foundation Model,Convolution"
|
|
52
|
-
REVE,General,Prediction,200,"n_outputs, n_times, n_chans",69481476,"REVE(n_times=1000, n_outputs=4, n_chans=19)","Foundation Model,Attention/Transformer"
|
|
53
|
-
DGCNN,Emotion Recognition,Prediction,128,"n_chans, n_outputs, n_times, chs_info",1037385,"DGCNN(n_chans=62, n_outputs=4, n_times=128)","Graph Neural Network,Channel"
|
|
54
|
-
InterpolatedBENDR,General,"Prediction, Embedding",250,"chs_info, n_outputs, n_times",157143101,"InterpolatedBENDR(chs_info=<user>, n_outputs=4, n_times=1000)","Foundation Model,Convolution,Channel"
|
|
55
|
-
InterpolatedBIOT,"Sleep Staging, Epilepsy",Prediction,200,"chs_info, n_outputs, n_times, sfreq",3184101,"InterpolatedBIOT(chs_info=<user>, n_outputs=5, sfreq=200, n_times=6000)","Foundation Model,Channel"
|
|
56
|
-
InterpolatedEEGPT,General,Prediction,256,"chs_info, n_outputs, n_times",25323137,"InterpolatedEEGPT(chs_info=<user>, n_outputs=4, n_times=1024)","Foundation Model,Attention/Transformer,Channel"
|
|
57
|
-
InterpolatedLaBraM,General,"Prediction, Embedding",200,"chs_info, n_outputs, n_times",5866196,"InterpolatedLaBraM(chs_info=<user>, n_outputs=4, n_times=1000)","Convolution,Foundation Model,Channel"
|
|
58
|
-
InterpolatedSignalJEPA,"Motor Imagery, ERP, SSVEP",Embedding,128,"chs_info",3456882,"InterpolatedSignalJEPA(chs_info=<user>)","Convolution,Channel,Foundation Model"
|
|
59
|
-
TCFormer,Motor Imagery,Classification,250,"n_chans, n_outputs, n_times",77820,"TCFormer(n_chans=22, n_outputs=4, n_times=1000)","Convolution,Attention/Transformer"
|
|
60
|
-
EEGDINO,General,Classification,200,"n_chans, n_outputs, n_times",4539698,"EEGDINO(n_chans=19, n_outputs=4, n_times=1000)","Foundation Model,Attention/Transformer"
|
|
61
|
-
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"
|
|
1
|
+
Model,Application,Type,Sampling Frequency (Hz),Hyperparameters,#Parameters,get_#Parameters,Categorization
|
|
2
|
+
ATCNet,General,Prediction,250,"n_chans, n_outputs, n_times",113732,"ATCNet(n_chans=22, n_outputs=4, n_times=1000)","Convolution,Recurrent,Attention/Transformer"
|
|
3
|
+
AttentionBaseNet,Motor Imagery,Prediction,250,"n_chans, n_outputs, n_times",3692,"AttentionBaseNet(n_chans=22, n_outputs=4, n_times=1000)","Convolution,Attention/Transformer"
|
|
4
|
+
BDTCN,Normal Abnormal,Prediction,100,"n_chans, n_outputs, n_times",456502,"BDTCN(n_chans=21, n_outputs=2, n_times=6000, n_blocks=5, n_filters=55, kernel_size=16)","Convolution,Recurrent"
|
|
5
|
+
BIOT,"Sleep Staging, Epilepsy",Prediction,200,"n_chans, n_outputs",3183879,"BIOT(n_chans=2, n_outputs=5, n_times=6000)","Foundation Model"
|
|
6
|
+
CBraMod,General,"Prediction, Embedding",200,"n_outputs",4924000,"CBraMod(n_outputs=2)","Foundation Model"
|
|
7
|
+
CodeBrain,General,"Prediction, Embedding",200,"n_chans, n_outputs, n_times",15238802,"CodeBrain(n_chans=19, n_outputs=2, n_times=6000)","Foundation Model,Attention/Transformer"
|
|
8
|
+
ContraWR,Sleep Staging,"Prediction, Embedding",125,"n_chans, n_outputs, sfreq",1160165,"ContraWR(n_chans=2, n_outputs=5, n_times=3750, emb_size=256, sfreq=125)",Convolution
|
|
9
|
+
CTNet,Motor Imagery,Prediction,250,"n_chans, n_outputs, n_times",26900,"CTNet(n_chans=22, n_outputs=4, n_times=1000, n_filters_time=8, kernel_size=16, num_heads=2, embed_dim=16)","Convolution,Attention/Transformer"
|
|
10
|
+
Deep4Net,General,Prediction,250,"n_chans, n_outputs, n_times",282879,"Deep4Net(n_chans=22, n_outputs=4, n_times=1000)","Convolution"
|
|
11
|
+
DeepSleepNet,Sleep Staging,Prediction,256,"n_chans, n_outputs",24744837,"DeepSleepNet(n_chans=1, n_outputs=5, n_times=7680, sfreq=256)","Convolution,Recurrent"
|
|
12
|
+
EEGConformer,General,Prediction,250,"n_chans, n_outputs, n_times",789572,"EEGConformer(n_chans=22, n_outputs=4, n_times=1000)","Convolution,Attention/Transformer"
|
|
13
|
+
EEGPT,General,Prediction,256,"n_chans, n_outputs, n_times",25477635,"EEGPT(n_chans=58, n_outputs=4, n_times=1024)","Foundation Model,Attention/Transformer"
|
|
14
|
+
EEGInceptionERP,"ERP, SSVEP",Prediction,128,"n_chans, n_outputs",14926,"EEGInceptionERP(n_chans=8, n_outputs=2, n_times=128, sfreq=128)","Convolution"
|
|
15
|
+
EEGInceptionMI,Motor Imagery,Prediction,250,"n_chans, n_outputs, n_times",558028,"EEGInceptionMI(n_chans=22, n_outputs=4, n_times=1000, n_convs=5, n_filters=12)","Convolution"
|
|
16
|
+
EEGITNet,Motor Imagery,Prediction,125,"n_chans, n_outputs, n_times",5212,"EEGITNet(n_chans=22, n_outputs=4, n_times=500)","Convolution,Recurrent"
|
|
17
|
+
EEGNet,General,Prediction,128,"n_chans, n_outputs, n_times",2484,"EEGNet(n_chans=22, n_outputs=4, n_times=512)","Convolution"
|
|
18
|
+
EEGNeX,Motor Imagery,Prediction,125,"n_chans, n_outputs, n_times",55940,"EEGNeX(n_chans=22, n_outputs=4, n_times=500)","Convolution"
|
|
19
|
+
EEGSym,Motor Imagery,Prediction,250,"n_chans, n_outputs, n_times, sfreq",299218,"EEGSym(n_chans=22, n_outputs=4, n_times=1000, sfreq=250)","Convolution,Channel"
|
|
20
|
+
EEGMiner,Emotion Recognition,Prediction,128,"n_chans, n_outputs, n_times, sfreq",7572,"EEGMiner(n_chans=62, n_outputs=2, n_times=2560, sfreq=128)","Convolution,Interpretability"
|
|
21
|
+
EEGSimpleConv,Motor Imagery,Prediction,80,"n_chans, n_outputs, sfreq",730404,"EEGSimpleConv(n_chans=22, n_outputs=4, n_times=320, sfreq=80)","Convolution"
|
|
22
|
+
EEGTCNet,Motor Imagery,Prediction,250,"n_chans, n_outputs",4516,"EEGTCNet(n_chans=22, n_outputs=4, n_times=1000, kern_length=32)","Convolution,Recurrent"
|
|
23
|
+
Labram,General,"Prediction, Embedding",200,"n_chans, n_outputs, n_times",5866180,"Labram(n_chans=22, n_outputs=4, n_times=1000, sfreq=250)","Convolution,Foundation Model"
|
|
24
|
+
MSVTNet,Motor Imagery,Prediction,250,"n_chans, n_outputs, n_times",75494," MSVTNet(n_chans=22, n_outputs=4, n_times=1000)","Convolution,Recurrent,Attention/Transformer"
|
|
25
|
+
SCCNet,Motor Imagery,Prediction,125,"n_chans, n_outputs, n_times, sfreq",12070,"SCCNet(n_chans=22, n_outputs=4, n_times=1000, sfreq=125)","Convolution"
|
|
26
|
+
SignalJEPA,"Motor Imagery, ERP, SSVEP",Embedding,128,"n_times, chs_info",3456882,"SignalJEPA(n_times=512, chs_info=Lee2019_MI().get_data(subjects=[1])[1]['0']['1train'].info[""chs""][:62])","Convolution,Channel,Foundation Model"
|
|
27
|
+
SignalJEPA_Contextual,"Motor Imagery, ERP, SSVEP",Prediction,128,"n_outputs, n_times, chs_info",3459184,"SignalJEPA_Contextual(n_outputs=2, input_window_seconds=4.19, sfreq=128, chs_info=Lee2019_MI().get_data(subjects=[1])[1]['0']['1train'].info[""chs""][:62])","Convolution,Channel,Foundation Model"
|
|
28
|
+
SignalJEPA_PostLocal,"Motor Imagery, ERP, SSVEP",Prediction,128,"n_chans, n_outputs, n_times",16142,"SignalJEPA_PostLocal(n_chans=62, n_outputs=2, input_window_seconds=4.19, sfreq=128)","Convolution,Channel,Foundation Model"
|
|
29
|
+
SignalJEPA_PreLocal,"Motor Imagery, ERP, SSVEP",Prediction,128,"n_outputs, n_times, chs_info",16142,"SignalJEPA_PreLocal(n_chans=62, n_outputs=2, input_window_seconds=4.19, sfreq=128)","Convolution,Channel,Foundation Model"
|
|
30
|
+
SincShallowNet,Motor Imagery,Prediction,250,"n_chans, n_outputs, n_times, sfreq",21892,"SincShallowNet(n_chans=22, n_outputs=4, n_times=1000, sfreq=250)","Convolution,Interpretability"
|
|
31
|
+
ShallowFBCSPNet,General,Prediction,250,"n_chans, n_outputs, n_times",46084,"ShallowFBCSPNet(n_chans=22, n_outputs=4, n_times=1000, sfreq=250)","Convolution"
|
|
32
|
+
SleepStagerBlanco2020,Sleep Staging,Prediction,100,"n_chans, n_outputs, n_times",2845,"SleepStagerBlanco2020(n_chans=2, n_outputs=5, n_times=3000, sfreq=100)","Convolution"
|
|
33
|
+
SleepStagerChambon2018,Sleep Staging,Prediction,128,"n_chans, n_outputs, n_times, sfreq",5835,"SleepStagerChambon2018(n_chans=2, n_outputs=5, n_times=3840, sfreq=128)","Convolution"
|
|
34
|
+
AttnSleep,Sleep Staging,Prediction,100,"n_chans, n_outputs, n_times, sfreq",719925,"AttnSleep(n_chans=2, n_outputs=5, n_times=3000, sfreq=100)","Convolution, Attention/Transformer"
|
|
35
|
+
SPARCNet,Epilepsy,Prediction,200,"n_chans, n_outputs, n_times",1141921,"SPARCNet(n_chans=16, n_outputs=6, n_times=2000, sfreq=200)","Convolution"
|
|
36
|
+
SyncNet,"Emotion Recognition, Alcoholism",Prediction,256,"n_chans, n_outputs, n_times",554,"SyncNet(n_chans=62, n_outputs=3, n_times=5120, sfreq=256)","Interpretability"
|
|
37
|
+
TSception,Emotion Recognition,Prediction,256,"n_chans, n_outputs, n_times, sfreq",2187206,"TSception(n_chans=62, n_outputs=3, n_times=5120, sfreq=256)","Convolution"
|
|
38
|
+
TIDNet,General,Prediction,250,"n_chans, n_outputs, n_times",240404,"TIDNet(n_chans=22, n_outputs=4, n_times=1000)","Convolution"
|
|
39
|
+
USleep,Sleep Staging,Prediction,128,"n_chans, n_outputs, n_times, sfreq",2482011,"USleep(n_chans=2, n_outputs=5, n_times=3000, sfreq=100)","Convolution"
|
|
40
|
+
FBCNet,Motor Imagery,Prediction,250,"n_chans, n_outputs, n_times, sfreq",11812,"FCNet(n_chans=22, n_outputs=4, n_times=1000, sfreq=250)","Convolution,FilterBank"
|
|
41
|
+
FBMSNet,Motor Imagery,Prediction,250,"n_chans, n_outputs, n_times, sfreq",16231,"FBMSNet(n_chans=22, n_outputs=4, n_times=1000, sfreq=250)","Convolution,FilterBank"
|
|
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
|
+
FBLightConvNet,Motor Imagery,Prediction,250,"n_chans, n_outputs, n_times, sfreq",6596,"FBLightConvNet(n_chans=22, n_outputs=4, n_times=1000, sfreq=250)","Convolution,FilterBank"
|
|
45
|
+
IFNet,Motor Imagery,Prediction,250,"n_chans, n_outputs, n_times, sfreq",9860,"IFNet(n_chans=22, n_outputs=4, n_times=1000, sfreq=250)","Convolution,FilterBank"
|
|
46
|
+
BrainModule,Speech Decoding,Prediction,250,"n_chans, n_outputs, n_times, sfreq",6186909,"BrainModule(n_chans=64, n_outputs=29, n_times=160, sfreq=1000)","Convolution"
|
|
47
|
+
PBT,General,Prediction,250,"n_chans, n_outputs, n_times",818948,"PBT(n_chans=22, n_outputs=4, n_times=1000, sfreq=250)","Foundation Model"
|
|
48
|
+
SSTDPN,Motor Imagery,Prediction,250,"n_chans, n_outputs, n_times",19502,"SSTDPN(n_chans=22, n_outputs=4, n_times=1000)","Convolution,Attention/Transformer"
|
|
49
|
+
BENDR,General,"Prediction, Embedding",250,"n_chans, n_times, n_outputs",157141049,"BENDR(n_chans=22, n_outputs=4, n_times=1000)","Foundation Model,Convolution"
|
|
50
|
+
LUNA,General,"Prediction, Embedding",128,"n_chans, n_times, sfreq, chs_info",7100731,"LUNA(n_chans=22, n_times=512, sfreq=128)","Convolution,Channel,Foundation Model"
|
|
51
|
+
MEDFormer,General,Prediction,250,"n_chans, n_outputs, n_times",5313924,"MEDFormer(n_chans=22, n_outputs=4, n_times=1000)","Foundation Model,Convolution"
|
|
52
|
+
REVE,General,Prediction,200,"n_outputs, n_times, n_chans",69481476,"REVE(n_times=1000, n_outputs=4, n_chans=19)","Foundation Model,Attention/Transformer"
|
|
53
|
+
DGCNN,Emotion Recognition,Prediction,128,"n_chans, n_outputs, n_times, chs_info",1037385,"DGCNN(n_chans=62, n_outputs=4, n_times=128)","Graph Neural Network,Channel"
|
|
54
|
+
InterpolatedBENDR,General,"Prediction, Embedding",250,"chs_info, n_outputs, n_times",157143101,"InterpolatedBENDR(chs_info=<user>, n_outputs=4, n_times=1000)","Foundation Model,Convolution,Channel"
|
|
55
|
+
InterpolatedBIOT,"Sleep Staging, Epilepsy",Prediction,200,"chs_info, n_outputs, n_times, sfreq",3184101,"InterpolatedBIOT(chs_info=<user>, n_outputs=5, sfreq=200, n_times=6000)","Foundation Model,Channel"
|
|
56
|
+
InterpolatedEEGPT,General,Prediction,256,"chs_info, n_outputs, n_times",25323137,"InterpolatedEEGPT(chs_info=<user>, n_outputs=4, n_times=1024)","Foundation Model,Attention/Transformer,Channel"
|
|
57
|
+
InterpolatedLaBraM,General,"Prediction, Embedding",200,"chs_info, n_outputs, n_times",5866196,"InterpolatedLaBraM(chs_info=<user>, n_outputs=4, n_times=1000)","Convolution,Foundation Model,Channel"
|
|
58
|
+
InterpolatedSignalJEPA,"Motor Imagery, ERP, SSVEP",Embedding,128,"chs_info",3456882,"InterpolatedSignalJEPA(chs_info=<user>)","Convolution,Channel,Foundation Model"
|
|
59
|
+
TCFormer,Motor Imagery,Classification,250,"n_chans, n_outputs, n_times",77820,"TCFormer(n_chans=22, n_outputs=4, n_times=1000)","Convolution,Attention/Transformer"
|
|
60
|
+
EEGDINO,General,Classification,200,"n_chans, n_outputs, n_times",4539698,"EEGDINO(n_chans=19, n_outputs=4, n_times=1000)","Foundation Model,Attention/Transformer"
|
|
61
|
+
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"
|
{braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/modules/__init__.py
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from .activation import
|
|
1
|
+
from .activation import LogActivation, SafeLog, Square
|
|
2
2
|
from .attention import (
|
|
3
3
|
CAT,
|
|
4
4
|
CBAM,
|
|
@@ -50,7 +50,6 @@ from .util import aggregate_probas
|
|
|
50
50
|
from .wrapper import Expression, IntermediateOutputWrapper
|
|
51
51
|
|
|
52
52
|
__all__ = [
|
|
53
|
-
"GatedLinearUnit",
|
|
54
53
|
"LogActivation",
|
|
55
54
|
"SafeLog",
|
|
56
55
|
"Square",
|
{braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/modules/activation.py
RENAMED
|
@@ -104,37 +104,3 @@ class LogActivation(nn.Module):
|
|
|
104
104
|
|
|
105
105
|
def forward(self, x: torch.Tensor) -> torch.Tensor:
|
|
106
106
|
return torch.log(x + self.epsilon) # Adding epsilon to prevent log(0)
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
class GatedLinearUnit(nn.Module):
|
|
110
|
-
r"""Generalized gated linear unit (GLU family).
|
|
111
|
-
|
|
112
|
-
Splits the last dimension in half into a ``value`` and a ``gate`` and
|
|
113
|
-
returns :math:`\text{value} \otimes \text{activation}(\text{gate})`. With the
|
|
114
|
-
default ``activation=nn.GELU`` this is **GEGLU** (Shazeer, 2020); ``nn.SiLU``
|
|
115
|
-
gives SwiGLU and ``nn.Sigmoid`` the original GLU. Unlike
|
|
116
|
-
:class:`torch.nn.GLU`, the gate nonlinearity is configurable (``torch.nn.GLU``
|
|
117
|
-
is hard-wired to the sigmoid).
|
|
118
|
-
|
|
119
|
-
Parameters
|
|
120
|
-
----------
|
|
121
|
-
activation : type[nn.Module], default=nn.GELU
|
|
122
|
-
Constructor of the gate activation. The default yields GEGLU.
|
|
123
|
-
|
|
124
|
-
Examples
|
|
125
|
-
--------
|
|
126
|
-
>>> import torch
|
|
127
|
-
>>> from braindecode.modules import GatedLinearUnit
|
|
128
|
-
>>> module = GatedLinearUnit()
|
|
129
|
-
>>> outputs = module(torch.randn(2, 10, 16))
|
|
130
|
-
>>> outputs.shape
|
|
131
|
-
torch.Size([2, 10, 8])
|
|
132
|
-
"""
|
|
133
|
-
|
|
134
|
-
def __init__(self, activation: type[nn.Module] = nn.GELU):
|
|
135
|
-
super().__init__()
|
|
136
|
-
self.activation = activation()
|
|
137
|
-
|
|
138
|
-
def forward(self, x: Tensor) -> Tensor:
|
|
139
|
-
value, gate = x.chunk(2, dim=-1)
|
|
140
|
-
return value * self.activation(gate)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "1.6.1.dev171935310"
|
{braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310/braindecode.egg-info}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: braindecode
|
|
3
|
-
Version: 1.6.1.
|
|
3
|
+
Version: 1.6.1.dev171935310
|
|
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>
|
|
@@ -215,7 +215,6 @@ stability.
|
|
|
215
215
|
:template: class_in_subdir
|
|
216
216
|
:recursive:
|
|
217
217
|
|
|
218
|
-
GatedLinearUnit
|
|
219
218
|
LogActivation
|
|
220
219
|
SafeLog
|
|
221
220
|
|
|
@@ -417,7 +416,6 @@ The functional module contains various functions that can be used like functiona
|
|
|
417
416
|
plv_time
|
|
418
417
|
rescale_parameter
|
|
419
418
|
safe_log
|
|
420
|
-
sinusoidal_positional_encoding
|
|
421
419
|
square
|
|
422
420
|
|
|
423
421
|
**********
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
# Authors: Fashad Ahmed <fashad.ahmed20@gmail.com>
|
|
2
|
-
#
|
|
3
1
|
"""Our local Sphinx configuration file."""
|
|
4
2
|
|
|
5
3
|
#!/usr/bin/env python3
|
|
@@ -284,17 +282,6 @@ intersphinx_mapping = {
|
|
|
284
282
|
"spd_learn": ("https://spdlearn.org/", None),
|
|
285
283
|
}
|
|
286
284
|
|
|
287
|
-
if release.endswith("dev0"):
|
|
288
|
-
_pip_install_cell = (
|
|
289
|
-
"# Install the development version of braindecode\n"
|
|
290
|
-
"%pip install git+https://github.com/braindecode/braindecode.git"
|
|
291
|
-
)
|
|
292
|
-
else:
|
|
293
|
-
_pip_install_cell = (
|
|
294
|
-
f"# Install braindecode (pinned to the version used to build this notebook)\n"
|
|
295
|
-
f"%pip install braindecode=={release}"
|
|
296
|
-
)
|
|
297
|
-
|
|
298
285
|
sphinx_gallery_conf = {
|
|
299
286
|
"examples_dirs": ["../examples"],
|
|
300
287
|
"gallery_dirs": ["auto_examples"],
|
|
@@ -302,7 +289,6 @@ sphinx_gallery_conf = {
|
|
|
302
289
|
"backreferences_dir": "generated",
|
|
303
290
|
"show_memory": True,
|
|
304
291
|
"reference_url": dict(braindecode=None),
|
|
305
|
-
"first_notebook_cell": _pip_install_cell,
|
|
306
292
|
"subsection_order": ExplicitOrder(
|
|
307
293
|
[
|
|
308
294
|
"../examples/model_building",
|
{braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/docs/models/models_table.rst
RENAMED
|
@@ -45,9 +45,6 @@ Columns definitions:
|
|
|
45
45
|
- **Application**: The application(s) the model is typically used for (e.g., Motor
|
|
46
46
|
Imagery, P300, Sleep Staging). 'General' indicates applicability across multiple
|
|
47
47
|
applications or no specific application focus.
|
|
48
|
-
- **Modality**: The recording modality (bio-signal type) the model is designed and
|
|
49
|
-
validated for, e.g. EEG, MEG, or sEMG. Most Braindecode models target EEG; a few
|
|
50
|
-
support more than one modality (e.g. EEG, MEG).
|
|
51
48
|
- **Type**: The model's output interface. ``Prediction`` indicates a supervised head
|
|
52
49
|
that can be used for classification or regression, depending on the wrapper, loss,
|
|
53
50
|
and target. ``Embedding`` indicates a model that exposes an embedding
|
|
@@ -156,7 +153,7 @@ Braindecode.
|
|
|
156
153
|
}
|
|
157
154
|
|
|
158
155
|
/* --- DataTable: panes hidden until button click ---------------------- */
|
|
159
|
-
var FILTER_COLS = [1,2,3,4]; //
|
|
156
|
+
var FILTER_COLS = [1,2,3,4]; // Paradigm, Type, Categorization, Hyperparameters
|
|
160
157
|
var table = $('.sortable').DataTable({
|
|
161
158
|
dom: 'Blfrtip', // B = Buttons (no 'P' here)
|
|
162
159
|
paging: false,
|
|
@@ -28,20 +28,6 @@ Current 1.6.1 (GitHub)
|
|
|
28
28
|
Enhancements
|
|
29
29
|
============
|
|
30
30
|
|
|
31
|
-
- Pin the ``%pip install braindecode`` cell in generated notebooks to the
|
|
32
|
-
version used to build them (``braindecode==X.Y.Z`` for stable releases,
|
|
33
|
-
``git+https://github.com/braindecode/braindecode.git`` for dev builds),
|
|
34
|
-
so notebooks can be reproduced with a matching installation.
|
|
35
|
-
(:gh:`1080` by `Fashad Ahmed`_)
|
|
36
|
-
- Add :func:`braindecode.functional.sinusoidal_positional_encoding`, a shared
|
|
37
|
-
sine/cosine positional-encoding primitive (handling odd dimensions), and reuse
|
|
38
|
-
it in :class:`braindecode.models.BIOT`, :class:`braindecode.models.MEDFormer`,
|
|
39
|
-
and :class:`braindecode.models.STEEGFormer` instead of re-deriving the table in
|
|
40
|
-
each. Encodings are bit-identical, so model behavior is unchanged. Also add
|
|
41
|
-
:class:`braindecode.modules.GatedLinearUnit`, a configurable GLU-family gate
|
|
42
|
-
(GEGLU with the default ``nn.GELU``, SwiGLU with ``nn.SiLU``; ``torch.nn.GLU``
|
|
43
|
-
is hard-wired to the sigmoid) for building gated transformer feed-forwards.
|
|
44
|
-
(:gh:`1078` by `Bruno Aristimunha`_)
|
|
45
31
|
- Add an optional spatial Fourier :class:`braindecode.modules.ChannelMerger`
|
|
46
32
|
(with :class:`braindecode.modules.FourierEmb`) to
|
|
47
33
|
:class:`braindecode.models.BrainModule` via ``use_merger=True``, implementing
|
|
@@ -64,9 +50,6 @@ Enhancements
|
|
|
64
50
|
- Clarify the model summary table's ``Type`` column by using ``Prediction`` for
|
|
65
51
|
supervised heads instead of describing them as classification-only.
|
|
66
52
|
By `Sarthak Tayal`_.
|
|
67
|
-
- Add a ``Modality`` column (EEG, MEG, sEMG, ...) to the model summary table so
|
|
68
|
-
models can be filtered by the bio-signal they target, and validate it against a
|
|
69
|
-
controlled vocabulary. By `Bhargav Kowshik`_.
|
|
70
53
|
- Add :class:`braindecode.models.InterpolatedEEGPT`, a channel-interpolation
|
|
71
54
|
variant of :class:`braindecode.models.EEGPT` built with
|
|
72
55
|
:func:`~braindecode.models.interpolated.InterpolatedModel`.
|
|
@@ -92,11 +75,6 @@ Enhancements
|
|
|
92
75
|
grouped-query attention Transformer with rotary positional embeddings, and a
|
|
93
76
|
grouped temporal convolutional network head. (:gh:`1065` by `Bruno
|
|
94
77
|
Aristimunha`_)
|
|
95
|
-
- Add a ``return_features`` option to :class:`braindecode.models.FBMSNet`: when
|
|
96
|
-
enabled, ``forward()`` returns ``(logits, features)`` where ``features`` is
|
|
97
|
-
the flattened pre-classifier vector (shape ``(batch, out_channels_spatial *
|
|
98
|
-
stride_factor)``), enabling center-loss training without subclassing.
|
|
99
|
-
(:gh:`1083` by `Bruno Aristimunha`_)
|
|
100
78
|
- Add an ``n_augmentation`` argument to
|
|
101
79
|
:class:`braindecode.augmentation.AugmentedDataLoader` for fixed set-expansion:
|
|
102
80
|
each batch keeps its clean originals and appends ``n_augmentation``
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "1.6.1.dev169782001"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/augmentation/base.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/datasets/__init__.py
RENAMED
|
File without changes
|
{braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/datasets/base.py
RENAMED
|
File without changes
|
{braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/datasets/bbci.py
RENAMED
|
File without changes
|
{braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/datasets/bcicomp.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{braindecode-1.6.1.dev169782001 → braindecode-1.6.1.dev171935310}/braindecode/datasets/bids/hub.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|