braindecode 1.8.1.dev168490289__tar.gz → 1.8.1.dev169087728__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.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/NOTICE.txt +13 -2
- {braindecode-1.8.1.dev168490289/braindecode.egg-info → braindecode-1.8.1.dev169087728}/PKG-INFO +3 -1
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/classifier.py +3 -2
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datasets/tuh.py +2 -1
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/__init__.py +11 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/base.py +16 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/bendr.py +14 -12
- braindecode-1.8.1.dev169087728/braindecode/models/brainomni.py +1905 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/cbramod.py +36 -9
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/deep4.py +28 -12
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/eegdino.py +4 -1
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/eegpt.py +14 -2
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/labram.py +42 -9
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/luna.py +23 -3
- braindecode-1.8.1.dev169087728/braindecode/models/mapa.py +851 -0
- braindecode-1.8.1.dev169087728/braindecode/models/neurorvq.py +648 -0
- braindecode-1.8.1.dev169087728/braindecode/models/popt.py +320 -0
- braindecode-1.8.1.dev169087728/braindecode/models/seizure_transformer.py +407 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/shallow_fbcsp.py +15 -8
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/signal_jepa.py +4 -1
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/summary.csv +6 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/util.py +114 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/zuna.py +3 -3
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/modules/__init__.py +6 -0
- braindecode-1.8.1.dev169087728/braindecode/modules/channel_tokenizer.py +215 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/modules/convolution.py +25 -14
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/modules/layers.py +4 -2
- braindecode-1.8.1.dev169087728/braindecode/modules/popt_modules.py +187 -0
- braindecode-1.8.1.dev169087728/braindecode/modules/quantization.py +402 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/regressor.py +35 -3
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/training/losses.py +7 -2
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/training/scoring.py +12 -4
- braindecode-1.8.1.dev169087728/braindecode/version.py +1 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728/braindecode.egg-info}/PKG-INFO +3 -1
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode.egg-info/SOURCES.txt +9 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode.egg-info/requires.txt +2 -0
- braindecode-1.8.1.dev169087728/docs/agent_docs.rst +60 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/docs/api.rst +10 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/docs/conf.py +7 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/docs/whats_new.rst +148 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/pyproject.toml +2 -0
- braindecode-1.8.1.dev168490289/braindecode/version.py +0 -1
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/LICENSE.txt +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/MANIFEST.in +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/README.rst +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/__init__.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/augmentation/__init__.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/augmentation/base.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/augmentation/functional.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/augmentation/transforms.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datasets/__init__.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datasets/_notebook_viewer.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datasets/base.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datasets/bbci.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datasets/bcicomp.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datasets/bids/__init__.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datasets/bids/datasets.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datasets/bids/format.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datasets/bids/hub.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datasets/bids/hub_format.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datasets/bids/hub_io.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datasets/bids/hub_validation.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datasets/bids/iterable.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datasets/chb_mit.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datasets/collate.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datasets/mne.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datasets/moabb.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datasets/nmt.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datasets/registry.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datasets/siena.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datasets/sleep_physio_challe_18.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datasets/sleep_physionet.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datasets/utils.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datasets/xy.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datautil/__init__.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datautil/channel_utils.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datautil/hub_formats.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datautil/serialization.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datautil/util.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/eegneuralnet.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/functional/__init__.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/functional/_real_dft.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/functional/functions.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/functional/initialization.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/atcnet.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/attentionbasenet.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/attn_sleep.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/barista.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/biot.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/brainbert.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/brainmodule.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/brant.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/codebrain.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/config.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/contrawr.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/ctnet.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/dance.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/deepsleepnet.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/dgcnn.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/diver1.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/eegconformer.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/eeginception_erp.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/eeginception_mi.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/eegitnet.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/eegminer.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/eegnet.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/eegnex.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/eegsimpleconv.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/eegsym.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/eegtcnet.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/emg2qwerty.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/fbcnet.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/fblightconvnet.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/fbmsnet.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/hybrid.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/ifnet.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/interpolated.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/medformer.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/meta_neuromotor.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/mirepnet.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/mscformer.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/msvtnet.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/mvpformer.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/neuropose.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/patchedtransformer.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/reve.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/sccnet.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/sensingdynamics.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/sinc_shallow.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/sleep_stager_blanco_2020.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/sleep_stager_chambon_2018.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/sparcnet.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/sstdpn.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/steegformer.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/syncnet.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/tcformer.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/tcn.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/tidnet.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/tsinception.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/usleep.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/vemg2pose.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/modules/activation.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/modules/attention.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/modules/blocks.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/modules/dance_modules.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/modules/filter.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/modules/interpolation.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/modules/linear.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/modules/parametrization.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/modules/stats.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/modules/util.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/modules/wrapper.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/preprocessing/__init__.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/preprocessing/eegprep_preprocess.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/preprocessing/mne_preprocess.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/preprocessing/preprocess.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/preprocessing/util.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/preprocessing/windowers.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/samplers/__init__.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/samplers/base.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/samplers/ssl.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/training/__init__.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/training/callbacks.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/util.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/visualization/__init__.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/visualization/activations.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/visualization/attribution.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/visualization/confusion_matrices.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/visualization/frequency.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/visualization/metrics.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/visualization/sanity.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/visualization/topology.py +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode.egg-info/dependency_links.txt +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode.egg-info/top_level.txt +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/docs/Makefile +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/docs/_templates/autosummary/class.rst +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/docs/_templates/autosummary/class_in_subdir.rst +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/docs/_templates/autosummary/function.rst +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/docs/_templates/autosummary/function_in_subdir.rst +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/docs/cite.rst +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/docs/help.rst +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/docs/index.rst +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/docs/install/install.rst +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/docs/install/install_pip.rst +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/docs/install/install_source.rst +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/docs/models/categorization/attention.rst +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/docs/models/categorization/channel.rst +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/docs/models/categorization/convolution.rst +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/docs/models/categorization/filterbank.rst +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/docs/models/categorization/gnn.rst +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/docs/models/categorization/interpretable.rst +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/docs/models/categorization/lbm.rst +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/docs/models/categorization/recurrent.rst +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/docs/models/categorization/spd.rst +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/docs/models/models.rst +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/docs/models/models_categorization.rst +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/docs/models/models_table.rst +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/docs/models/models_visualization.rst +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/docs/sg_execution_times.rst +0 -0
- {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/setup.cfg +0 -0
|
@@ -14,8 +14,7 @@ The following components are licensed under the Creative Commons Attribution-Non
|
|
|
14
14
|
- `braindecode/models/eegminer.py`
|
|
15
15
|
- `braindecode/models/meta_neuromotor.py`
|
|
16
16
|
- `braindecode/models/brainmodule.py`
|
|
17
|
-
|
|
18
|
-
As well as class later imported into the `braindecode.models.module` named as GeneralizedGaussianFilter.
|
|
17
|
+
- `braindecode/models/neurorvq.py`
|
|
19
18
|
|
|
20
19
|
The `meta_neuromotor.py` file is a derivative of
|
|
21
20
|
`facebookresearch/generic-neuromotor-interface`, released by Meta Platforms,
|
|
@@ -43,6 +42,17 @@ The following components are licensed under the MIT License:
|
|
|
43
42
|
- `braindecode/models/tcformer.py`
|
|
44
43
|
- `braindecode/models/ifnet.py`
|
|
45
44
|
- `braindecode/models/mirepnet.py`
|
|
45
|
+
- `braindecode/models/popt.py`
|
|
46
|
+
- `braindecode/modules/popt_modules.py`
|
|
47
|
+
- `braindecode/models/brainomni.py`
|
|
48
|
+
- `braindecode/modules/quantization.py`
|
|
49
|
+
- `braindecode/models/seizure_transformer.py`
|
|
50
|
+
- `docs/_static/model/seizure_transformer_arch.png`
|
|
51
|
+
|
|
52
|
+
The `brainomni.py` file is a derivative of `OpenTSLab/BrainOmni` (MIT), whose
|
|
53
|
+
SEANet codec derives from Meta's `facebookresearch/encodec` (MIT). The
|
|
54
|
+
`quantization.py` module holds the residual vector quantization derived from
|
|
55
|
+
`lucidrains/vector-quantize-pytorch` (MIT) and the BrainOmni port.
|
|
46
56
|
|
|
47
57
|
### Apache-2.0 Licensed Files
|
|
48
58
|
|
|
@@ -51,6 +61,7 @@ The following components are licensed under the Apache License 2.0:
|
|
|
51
61
|
- `braindecode/models/mvpformer.py`
|
|
52
62
|
- `braindecode/models/zuna.py`
|
|
53
63
|
- `braindecode/models/luna.py`
|
|
64
|
+
- `braindecode/models/mapa.py`
|
|
54
65
|
- `braindecode/models/brant.py`
|
|
55
66
|
- `braindecode/models/diver1.py`
|
|
56
67
|
- `braindecode/models/mscformer.py`
|
{braindecode-1.8.1.dev168490289/braindecode.egg-info → braindecode-1.8.1.dev169087728}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: braindecode
|
|
3
|
-
Version: 1.8.1.
|
|
3
|
+
Version: 1.8.1.dev169087728
|
|
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>
|
|
@@ -60,6 +60,8 @@ Provides-Extra: typing
|
|
|
60
60
|
Requires-Dist: exca>=0.5.10; extra == "typing"
|
|
61
61
|
Requires-Dist: numpydantic>=1.7; extra == "typing"
|
|
62
62
|
Provides-Extra: docs
|
|
63
|
+
Requires-Dist: pytest<9.1; extra == "docs"
|
|
64
|
+
Requires-Dist: sphinx-markdown-builder==0.6.11; extra == "docs"
|
|
63
65
|
Requires-Dist: sphinx_gallery>=0.17; extra == "docs"
|
|
64
66
|
Requires-Dist: sphinx_rtd_theme; extra == "docs"
|
|
65
67
|
Requires-Dist: sphinx-autodoc-typehints; extra == "docs"
|
|
@@ -207,10 +207,11 @@ class EEGClassifier(_EEGNeuralNet, NeuralNetClassifier):
|
|
|
207
207
|
|
|
208
208
|
Returns
|
|
209
209
|
-------
|
|
210
|
-
trial_predictions : np.ndarray
|
|
210
|
+
trial_predictions : np.ndarray | list of np.ndarray
|
|
211
211
|
3-dimensional array (n_trials x n_classes x n_predictions), where
|
|
212
212
|
the number of predictions depend on the chosen window size and the
|
|
213
|
-
receptive field of the network.
|
|
213
|
+
receptive field of the network. If trials have different lengths,
|
|
214
|
+
a list with one (n_classes x n_predictions) array per trial.
|
|
214
215
|
trial_targets : np.ndarray
|
|
215
216
|
Ground-truth targets from the dataset in a 2-dimensional array
|
|
216
217
|
(n_trials x n_targets). Only returned when ``return_targets=True``.
|
{braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datasets/tuh.py
RENAMED
|
@@ -815,7 +815,8 @@ def _get_header(*args, **kwargs):
|
|
|
815
815
|
for paths_dict in [_TUH_EEG_PATHS, _TUH_EEG_ABNORMAL_PATHS, _TUH_EEG_EVENTS_PATHS]:
|
|
816
816
|
for version_dict in paths_dict.values():
|
|
817
817
|
all_paths.update(version_dict)
|
|
818
|
-
|
|
818
|
+
# Mock keys use POSIX separators; pathlib emits backslashes on Windows.
|
|
819
|
+
return all_paths[os.fspath(args[0]).replace("\\", "/")]
|
|
819
820
|
|
|
820
821
|
|
|
821
822
|
_TUH_EEG_PATHS = {
|
{braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/__init__.py
RENAMED
|
@@ -9,6 +9,7 @@ from .bendr import BENDR, InterpolatedBENDR
|
|
|
9
9
|
from .biot import BIOT, InterpolatedBIOT
|
|
10
10
|
from .brainbert import BrainBERT
|
|
11
11
|
from .brainmodule import BrainModule
|
|
12
|
+
from .brainomni import BrainOmni, BrainTokenizer
|
|
12
13
|
from .brant import Brant
|
|
13
14
|
from .cbramod import CBraMod
|
|
14
15
|
from .codebrain import CodeBrain
|
|
@@ -40,6 +41,7 @@ from .ifnet import IFNet
|
|
|
40
41
|
from .interpolated import InterpolatedModel
|
|
41
42
|
from .labram import InterpolatedLaBraM, Labram
|
|
42
43
|
from .luna import LUNA
|
|
44
|
+
from .mapa import MAPA
|
|
43
45
|
from .medformer import MEDFormer
|
|
44
46
|
from .meta_neuromotor import MetaNeuromotorHand
|
|
45
47
|
from .mirepnet import MIRepNet
|
|
@@ -47,9 +49,12 @@ from .mscformer import MSCFormer
|
|
|
47
49
|
from .msvtnet import MSVTNet
|
|
48
50
|
from .mvpformer import MVPFormer
|
|
49
51
|
from .neuropose import NeuroPose
|
|
52
|
+
from .neurorvq import NeuroRVQ
|
|
50
53
|
from .patchedtransformer import PBT
|
|
54
|
+
from .popt import PopulationTransformer
|
|
51
55
|
from .reve import REVE
|
|
52
56
|
from .sccnet import SCCNet
|
|
57
|
+
from .seizure_transformer import SeizureTransformer
|
|
53
58
|
from .sensingdynamics import SensingDynamics
|
|
54
59
|
from .shallow_fbcsp import ShallowFBCSPNet
|
|
55
60
|
from .signal_jepa import (
|
|
@@ -95,6 +100,8 @@ __all__ = [
|
|
|
95
100
|
"BIOT",
|
|
96
101
|
"BENDR",
|
|
97
102
|
"BrainBERT",
|
|
103
|
+
"BrainOmni",
|
|
104
|
+
"BrainTokenizer",
|
|
98
105
|
"CBraMod",
|
|
99
106
|
"CodeBrain",
|
|
100
107
|
"ContraWR",
|
|
@@ -138,14 +145,18 @@ __all__ = [
|
|
|
138
145
|
"LUNA",
|
|
139
146
|
"extract_channel_locations_from_chs_info",
|
|
140
147
|
"positions_from_chs_info",
|
|
148
|
+
"MAPA",
|
|
141
149
|
"MEDFormer",
|
|
142
150
|
"MIRepNet",
|
|
151
|
+
"NeuroRVQ",
|
|
143
152
|
"MSCFormer",
|
|
144
153
|
"MSVTNet",
|
|
145
154
|
"MVPFormer",
|
|
146
155
|
"PBT",
|
|
156
|
+
"PopulationTransformer",
|
|
147
157
|
"REVE",
|
|
148
158
|
"SCCNet",
|
|
159
|
+
"SeizureTransformer",
|
|
149
160
|
"ShallowFBCSPNet",
|
|
150
161
|
"SignalJEPA",
|
|
151
162
|
"SignalJEPA_Contextual",
|
{braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/base.py
RENAMED
|
@@ -779,6 +779,22 @@ class EEGModuleMixin(_BaseHubMixin, metaclass=_BraindecodeDocstringMeta):
|
|
|
779
779
|
|
|
780
780
|
if HAS_HF_HUB:
|
|
781
781
|
|
|
782
|
+
@classmethod
|
|
783
|
+
def from_pretrained(cls, *args, **kwargs):
|
|
784
|
+
# The Hub mixin fills omitted __init__ args from config.json; pin the
|
|
785
|
+
# derived geometry arg so it cannot clash with the caller's one
|
|
786
|
+
# (e.g. caller chs_info vs saved n_chans) in __init__'s checks.
|
|
787
|
+
if "chs_info" in kwargs and "n_chans" not in kwargs:
|
|
788
|
+
chs_info = kwargs["chs_info"]
|
|
789
|
+
kwargs["n_chans"] = None if chs_info is None else len(chs_info)
|
|
790
|
+
elif "n_chans" in kwargs and "chs_info" not in kwargs:
|
|
791
|
+
kwargs["chs_info"] = None
|
|
792
|
+
if ("n_times" in kwargs or "sfreq" in kwargs) and (
|
|
793
|
+
"input_window_seconds" not in kwargs
|
|
794
|
+
):
|
|
795
|
+
kwargs["input_window_seconds"] = None
|
|
796
|
+
return super().from_pretrained(*args, **kwargs)
|
|
797
|
+
|
|
782
798
|
@classmethod
|
|
783
799
|
def _from_pretrained(
|
|
784
800
|
cls,
|
{braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/bendr.py
RENAMED
|
@@ -11,6 +11,7 @@ from einops.layers.torch import Rearrange
|
|
|
11
11
|
from torch import nn
|
|
12
12
|
|
|
13
13
|
from braindecode.models.base import EEGModuleMixin
|
|
14
|
+
from braindecode.modules.channel_tokenizer import ChannelTokenizer
|
|
14
15
|
|
|
15
16
|
# The 20 channels used to pre-train BENDR, in the order expected by the
|
|
16
17
|
# `braindecode/braindecode-bendr` checkpoint. The first 19 entries are the
|
|
@@ -288,26 +289,25 @@ class BENDR(EEGModuleMixin, nn.Module):
|
|
|
288
289
|
# Keep these parameters if needed later, otherwise they are captured by the mixin
|
|
289
290
|
del n_outputs, n_chans, chs_info, n_times, input_window_seconds, sfreq
|
|
290
291
|
|
|
291
|
-
#
|
|
292
|
-
#
|
|
293
|
-
#
|
|
294
|
-
# When chs_info is absent (the usual n_chans=20 path, incl.
|
|
295
|
-
# from_pretrained), no check is performed.
|
|
292
|
+
# No chs_info (incl. from_pretrained) or the canonical order: no
|
|
293
|
+
# tokenizer, so released checkpoints stay bit-identical. Any other
|
|
294
|
+
# montage is projected onto the 20 canonical channels.
|
|
296
295
|
try:
|
|
297
296
|
_chs_info = self.chs_info
|
|
298
297
|
except ValueError:
|
|
299
298
|
_chs_info = None
|
|
299
|
+
self.channel_tokenizer = None
|
|
300
|
+
backbone_n_chans = self.n_chans
|
|
300
301
|
if _chs_info is not None:
|
|
301
302
|
user_names = [ch["ch_name"] for ch in _chs_info] # type: ignore[index]
|
|
302
303
|
canonical = BENDR_CHANNEL_ORDER
|
|
303
304
|
if [n.lower() for n in user_names] != [n.lower() for n in canonical]:
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
f"use InterpolatedBENDR "
|
|
309
|
-
f"(from braindecode.models import InterpolatedBENDR)."
|
|
305
|
+
self.channel_tokenizer = ChannelTokenizer(
|
|
306
|
+
strategy="fixed_order",
|
|
307
|
+
src_chs_info=_chs_info,
|
|
308
|
+
target_chs_info=_BENDR_TARGET_CHS_INFO,
|
|
310
309
|
)
|
|
310
|
+
backbone_n_chans = len(_BENDR_TARGET_CHS_INFO)
|
|
311
311
|
|
|
312
312
|
self.encoder_h = encoder_h
|
|
313
313
|
self.contextualizer_hidden = contextualizer_hidden
|
|
@@ -315,7 +315,7 @@ class BENDR(EEGModuleMixin, nn.Module):
|
|
|
315
315
|
self.encoder_only = encoder_only
|
|
316
316
|
|
|
317
317
|
self.encoder = _ConvEncoderBENDR(
|
|
318
|
-
in_features=
|
|
318
|
+
in_features=backbone_n_chans,
|
|
319
319
|
encoder_h=encoder_h,
|
|
320
320
|
dropout=drop_prob,
|
|
321
321
|
projection_head=projection_head,
|
|
@@ -361,6 +361,8 @@ class BENDR(EEGModuleMixin, nn.Module):
|
|
|
361
361
|
self._build_head(n_outputs)
|
|
362
362
|
|
|
363
363
|
def forward(self, x, return_features=False):
|
|
364
|
+
if self.channel_tokenizer is not None:
|
|
365
|
+
x = self.channel_tokenizer(x)
|
|
364
366
|
encoded = self.encoder(x)
|
|
365
367
|
# encoded: [batch_size, encoder_h, n_encoded_times]
|
|
366
368
|
|