braindecode 1.8.1.dev180519461__tar.gz → 1.8.1.dev180582398__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.dev180519461 → braindecode-1.8.1.dev180582398}/NOTICE.txt +5 -0
- {braindecode-1.8.1.dev180519461/braindecode.egg-info → braindecode-1.8.1.dev180582398}/PKG-INFO +1 -1
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/classifier.py +6 -5
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/eegneuralnet.py +1 -1
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/functional/__init__.py +2 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/functional/functions.py +44 -9
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/__init__.py +18 -14
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/attn_sleep.py +0 -4
- braindecode-1.8.1.dev180582398/braindecode/models/axon.py +516 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/barista.py +4 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/base.py +98 -17
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/bendr.py +37 -52
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/biot.py +34 -61
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/brainbert.py +10 -11
- braindecode-1.8.1.dev180582398/braindecode/models/brainomni.py +917 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/brant.py +12 -10
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/cbramod.py +11 -2
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/codebrain.py +26 -16
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/config.py +1 -2
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/contrawr.py +4 -4
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/csbrain.py +55 -100
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/dgcnn.py +3 -1
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/diver1.py +8 -5
- braindecode-1.8.1.dev180582398/braindecode/models/eeg_clip.py +307 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/eegdino.py +20 -12
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/eeginception_mi.py +10 -3
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/eegpt.py +5 -27
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/eegsym.py +17 -7
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/emg2qwerty.py +19 -2
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/labram.py +161 -157
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/luna.py +21 -9
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/mapa.py +36 -25
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/meta_neuromotor.py +25 -2
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/mirepnet.py +16 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/mvpformer.py +6 -1
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/neurorvq.py +168 -226
- braindecode-1.8.1.dev180582398/braindecode/models/neurorvq_tokenizer.py +582 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/popt.py +4 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/reve.py +9 -1
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/sensingdynamics.py +10 -5
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/signal_jepa.py +27 -19
- braindecode-1.8.1.dev180582398/braindecode/models/sleepfm.py +785 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/steegformer.py +4 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/summary.csv +7 -5
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/syncnet.py +2 -2
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/tcformer.py +6 -5
- braindecode-1.8.1.dev180582398/braindecode/models/tfm_tokenizer.py +416 -0
- braindecode-1.8.1.dev180582398/braindecode/models/tmsanet.py +233 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/util.py +64 -57
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/zuna.py +18 -9
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/modules/__init__.py +2 -4
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/modules/blocks.py +18 -5
- braindecode-1.8.1.dev180582398/braindecode/modules/channels.py +459 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/modules/filter.py +22 -30
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/modules/parametrization.py +29 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/modules/quantization.py +28 -19
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/modules/stats.py +6 -1
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/regressor.py +6 -5
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/training/scoring.py +6 -5
- braindecode-1.8.1.dev180582398/braindecode/version.py +1 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/visualization/topology.py +1 -1
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398/braindecode.egg-info}/PKG-INFO +1 -1
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode.egg-info/SOURCES.txt +9 -4
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/api.rst +29 -9
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/index.rst +1 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/models/models_categorization.rst +10 -3
- braindecode-1.8.1.dev180582398/docs/user_guide/channel_strategies.rst +59 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/whats_new.rst +162 -14
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/pyproject.toml +3 -0
- braindecode-1.8.1.dev180519461/braindecode/models/brainomni.py +0 -1905
- braindecode-1.8.1.dev180519461/braindecode/models/interpolated.py +0 -185
- braindecode-1.8.1.dev180519461/braindecode/modules/channel_tokenizer.py +0 -215
- braindecode-1.8.1.dev180519461/braindecode/modules/interpolation.py +0 -201
- braindecode-1.8.1.dev180519461/braindecode/version.py +0 -1
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/LICENSE.txt +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/MANIFEST.in +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/README.rst +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/__init__.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/augmentation/__init__.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/augmentation/base.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/augmentation/functional.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/augmentation/transforms.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datasets/__init__.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datasets/_notebook_viewer.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datasets/base.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datasets/bbci.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datasets/bcicomp.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datasets/bids/__init__.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datasets/bids/datasets.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datasets/bids/format.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datasets/bids/hub.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datasets/bids/hub_format.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datasets/bids/hub_io.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datasets/bids/hub_validation.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datasets/bids/iterable.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datasets/chb_mit.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datasets/collate.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datasets/mne.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datasets/moabb.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datasets/nmt.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datasets/registry.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datasets/siena.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datasets/sleep_physio_challe_18.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datasets/sleep_physionet.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datasets/tuh.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datasets/utils.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datasets/xy.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datautil/__init__.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datautil/channel_utils.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datautil/hub_formats.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datautil/serialization.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datautil/util.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/functional/_real_dft.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/functional/initialization.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/atcnet.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/attentionbasenet.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/brainmodule.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/ctnet.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/dance.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/deep4.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/deepsleepnet.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/eegconformer.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/eeginception_erp.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/eegitnet.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/eegminer.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/eegnet.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/eegnex.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/eegsimpleconv.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/eegtcnet.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/fbcnet.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/fblightconvnet.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/fbmsnet.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/hybrid.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/ifnet.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/medformer.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/mscformer.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/msvtnet.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/neuropose.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/patchedtransformer.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/sccnet.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/seizure_transformer.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/shallow_fbcsp.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/sinc_shallow.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/sleep_stager_blanco_2020.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/sleep_stager_chambon_2018.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/sparcnet.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/sstdpn.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/tcn.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/tidnet.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/tsinception.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/usleep.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/vemg2pose.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/modules/activation.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/modules/attention.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/modules/convolution.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/modules/dance_modules.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/modules/layers.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/modules/linear.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/modules/popt_modules.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/modules/util.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/modules/wrapper.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/preprocessing/__init__.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/preprocessing/eegprep_preprocess.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/preprocessing/mne_preprocess.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/preprocessing/preprocess.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/preprocessing/util.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/preprocessing/windowers.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/samplers/__init__.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/samplers/base.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/samplers/ssl.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/training/__init__.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/training/callbacks.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/training/losses.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/util.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/visualization/__init__.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/visualization/activations.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/visualization/attribution.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/visualization/confusion_matrices.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/visualization/frequency.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/visualization/metrics.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/visualization/sanity.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode.egg-info/dependency_links.txt +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode.egg-info/requires.txt +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode.egg-info/top_level.txt +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/Makefile +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/_templates/autosummary/class.rst +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/_templates/autosummary/class_in_subdir.rst +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/_templates/autosummary/function.rst +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/_templates/autosummary/function_in_subdir.rst +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/agent_docs.rst +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/cite.rst +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/conf.py +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/help.rst +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/install/install.rst +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/install/install_pip.rst +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/install/install_source.rst +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/models/categorization/attention.rst +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/models/categorization/channel.rst +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/models/categorization/convolution.rst +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/models/categorization/filterbank.rst +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/models/categorization/gnn.rst +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/models/categorization/interpretable.rst +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/models/categorization/lbm.rst +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/models/categorization/recurrent.rst +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/models/categorization/spd.rst +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/models/models.rst +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/models/models_table.rst +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/models/models_visualization.rst +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/sg_execution_times.rst +0 -0
- {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/setup.cfg +0 -0
|
@@ -13,8 +13,10 @@ The following components are licensed under the Creative Commons Attribution-Non
|
|
|
13
13
|
|
|
14
14
|
- `braindecode/models/eegminer.py`
|
|
15
15
|
- `braindecode/models/meta_neuromotor.py`
|
|
16
|
+
- `braindecode/models/sleepfm.py`
|
|
16
17
|
- `braindecode/models/brainmodule.py`
|
|
17
18
|
- `braindecode/models/neurorvq.py`
|
|
19
|
+
- `braindecode/models/neurorvq_tokenizer.py`
|
|
18
20
|
|
|
19
21
|
The `meta_neuromotor.py` file is a derivative of
|
|
20
22
|
`facebookresearch/generic-neuromotor-interface`, released by Meta Platforms,
|
|
@@ -43,11 +45,13 @@ The following components are licensed under the MIT License:
|
|
|
43
45
|
- `braindecode/models/ifnet.py`
|
|
44
46
|
- `braindecode/models/mirepnet.py`
|
|
45
47
|
- `braindecode/models/popt.py`
|
|
48
|
+
- `braindecode/models/tfm_tokenizer.py`
|
|
46
49
|
- `braindecode/modules/popt_modules.py`
|
|
47
50
|
- `braindecode/models/brainomni.py`
|
|
48
51
|
- `braindecode/modules/quantization.py`
|
|
49
52
|
- `braindecode/models/seizure_transformer.py`
|
|
50
53
|
- `docs/_static/model/seizure_transformer_arch.png`
|
|
54
|
+
- `braindecode/models/tmsanet.py`
|
|
51
55
|
|
|
52
56
|
The `brainomni.py` file is a derivative of `OpenTSLab/BrainOmni` (MIT), whose
|
|
53
57
|
SEANet codec derives from Meta's `facebookresearch/encodec` (MIT). The
|
|
@@ -58,6 +62,7 @@ SEANet codec derives from Meta's `facebookresearch/encodec` (MIT). The
|
|
|
58
62
|
|
|
59
63
|
The following components are licensed under the Apache License 2.0:
|
|
60
64
|
|
|
65
|
+
- `braindecode/models/axon.py`
|
|
61
66
|
- `braindecode/models/mvpformer.py`
|
|
62
67
|
- `braindecode/models/zuna.py`
|
|
63
68
|
- `braindecode/models/luna.py`
|
{braindecode-1.8.1.dev180519461/braindecode.egg-info → braindecode-1.8.1.dev180582398}/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.dev180582398
|
|
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>
|
|
@@ -212,11 +212,12 @@ class EEGClassifier(_EEGNeuralNet, NeuralNetClassifier):
|
|
|
212
212
|
the number of predictions depend on the chosen window size and the
|
|
213
213
|
receptive field of the network. If trials have different lengths,
|
|
214
214
|
a list with one (n_classes x n_predictions) array per trial.
|
|
215
|
-
trial_targets : np.ndarray
|
|
216
|
-
Ground-truth targets from the dataset
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
215
|
+
trial_targets : np.ndarray | list of np.ndarray
|
|
216
|
+
Ground-truth targets from the dataset. Only returned when
|
|
217
|
+
``return_targets=True``. An ``np.ndarray`` with a leading trial
|
|
218
|
+
dimension: ``(n_trials,)`` for scalar targets, with further
|
|
219
|
+
dimensions for multi-value or equal-length sequence targets. If
|
|
220
|
+
trial lengths differ, a list with one target array per trial.
|
|
220
221
|
"""
|
|
221
222
|
if not self.cropped:
|
|
222
223
|
warnings.warn(
|
{braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/eegneuralnet.py
RENAMED
|
@@ -144,7 +144,7 @@ class _EEGNeuralNet(NeuralNet, abc.ABC):
|
|
|
144
144
|
i_window_in_trials.append(i[0].cpu().numpy())
|
|
145
145
|
i_window_stops.append(i[2].cpu().numpy())
|
|
146
146
|
with torch.no_grad():
|
|
147
|
-
preds.append(to_numpy(self.module_
|
|
147
|
+
preds.append(to_numpy(self.module_(X.to(self.device))))
|
|
148
148
|
window_ys.append(y.cpu().numpy())
|
|
149
149
|
preds = np.concatenate(preds)
|
|
150
150
|
i_window_in_trials = np.concatenate(i_window_in_trials)
|
{braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/functional/__init__.py
RENAMED
|
@@ -11,6 +11,7 @@ from .functions import (
|
|
|
11
11
|
rotate_pairs,
|
|
12
12
|
safe_log,
|
|
13
13
|
sinusoidal_positional_encoding,
|
|
14
|
+
spectral_input,
|
|
14
15
|
square,
|
|
15
16
|
wavelet_decomposition,
|
|
16
17
|
)
|
|
@@ -29,6 +30,7 @@ __all__ = [
|
|
|
29
30
|
"rotate_pairs",
|
|
30
31
|
"safe_log",
|
|
31
32
|
"sinusoidal_positional_encoding",
|
|
33
|
+
"spectral_input",
|
|
32
34
|
"square",
|
|
33
35
|
"wavelet_decomposition",
|
|
34
36
|
"glorot_weight_zero_bias",
|
|
@@ -28,6 +28,32 @@ def identity(x):
|
|
|
28
28
|
return x
|
|
29
29
|
|
|
30
30
|
|
|
31
|
+
def spectral_input(x: torch.Tensor) -> torch.Tensor:
|
|
32
|
+
"""Prepare ``x`` for an FFT, STFT or eigendecomposition.
|
|
33
|
+
|
|
34
|
+
PyTorch has no complex bfloat16 dtype: CPU and MPS FFTs reject
|
|
35
|
+
bfloat16/float16, and Intel Gaudi (HPU) has no complex tensors at all.
|
|
36
|
+
This returns ``x`` in at least float32, moved to the CPU when it lives on
|
|
37
|
+
an HPU; float32/float64 CPU/CUDA inputs are returned as they are. Cast a
|
|
38
|
+
real result back with ``.to(x)`` (the input's dtype and device)::
|
|
39
|
+
|
|
40
|
+
spectrum = torch.fft.rfft(spectral_input(x), dim=-1).abs().to(x)
|
|
41
|
+
|
|
42
|
+
Parameters
|
|
43
|
+
----------
|
|
44
|
+
x : torch.Tensor
|
|
45
|
+
Real input of the spectral operation.
|
|
46
|
+
|
|
47
|
+
Returns
|
|
48
|
+
-------
|
|
49
|
+
torch.Tensor
|
|
50
|
+
``x`` in ``promote_types(x.dtype, float32)``, on the CPU for HPU inputs.
|
|
51
|
+
"""
|
|
52
|
+
if x.device.type == "hpu":
|
|
53
|
+
x = x.cpu()
|
|
54
|
+
return x.to(torch.promote_types(x.dtype, torch.float32))
|
|
55
|
+
|
|
56
|
+
|
|
31
57
|
def drop_path(
|
|
32
58
|
x, drop_prob: float = 0.0, training: bool = False, scale_by_keep: bool = True
|
|
33
59
|
):
|
|
@@ -171,13 +197,13 @@ def hilbert_freq(x: torch.Tensor, forward_fourier: bool = True) -> torch.Tensor:
|
|
|
171
197
|
return _real_dft.hilbert_freq_real(x, forward_fourier).to(x.dtype)
|
|
172
198
|
|
|
173
199
|
input_dtype = x.dtype
|
|
200
|
+
cast_back = x.is_floating_point()
|
|
174
201
|
# ``view_as_complex`` does not accept bfloat16 real/imaginary pairs. The
|
|
175
202
|
# HPU path can produce bfloat16 Fourier coefficients under autocast, so do
|
|
176
203
|
# the complex-valued part in float32 and restore the real-valued contract
|
|
177
204
|
# at the boundary. Promoting before the FFT also covers backends that do
|
|
178
205
|
# not implement bfloat16 FFT kernels.
|
|
179
|
-
|
|
180
|
-
x = x.float()
|
|
206
|
+
x = spectral_input(x)
|
|
181
207
|
|
|
182
208
|
if forward_fourier:
|
|
183
209
|
seq_len = x.shape[-1]
|
|
@@ -199,9 +225,8 @@ def hilbert_freq(x: torch.Tensor, forward_fourier: bool = True) -> torch.Tensor:
|
|
|
199
225
|
x = torch.fft.ifft(x, norm=None, dim=-1) # returns complex signal
|
|
200
226
|
x = torch.view_as_real(x)
|
|
201
227
|
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
return x
|
|
228
|
+
# Integer input stays float (casting back would truncate the analytic signal).
|
|
229
|
+
return x.to(input_dtype) if cast_back else x
|
|
205
230
|
|
|
206
231
|
|
|
207
232
|
def plv_time(
|
|
@@ -435,7 +460,12 @@ def wavelet_decomposition(
|
|
|
435
460
|
return out.reshape(*leading, -1)
|
|
436
461
|
|
|
437
462
|
|
|
438
|
-
def sinusoidal_positional_encoding(
|
|
463
|
+
def sinusoidal_positional_encoding(
|
|
464
|
+
n_positions: int,
|
|
465
|
+
dim: int,
|
|
466
|
+
device: torch.device | None = None,
|
|
467
|
+
dtype: torch.dtype = torch.float32,
|
|
468
|
+
) -> torch.Tensor:
|
|
439
469
|
r"""Fixed sine/cosine positional-encoding table of shape ``(n_positions, dim)``.
|
|
440
470
|
|
|
441
471
|
The standard encoding of Vaswani et al. (2017): for position :math:`p` and
|
|
@@ -452,6 +482,10 @@ def sinusoidal_positional_encoding(n_positions: int, dim: int) -> torch.Tensor:
|
|
|
452
482
|
Number of positions (sequence length) to encode.
|
|
453
483
|
dim : int
|
|
454
484
|
Embedding dimension of each position.
|
|
485
|
+
device : torch.device or None
|
|
486
|
+
Device of the table (default: CPU), for tables built inside ``forward``.
|
|
487
|
+
dtype : torch.dtype
|
|
488
|
+
Floating dtype the table is computed in.
|
|
455
489
|
|
|
456
490
|
Returns
|
|
457
491
|
-------
|
|
@@ -460,11 +494,12 @@ def sinusoidal_positional_encoding(n_positions: int, dim: int) -> torch.Tensor:
|
|
|
460
494
|
dropout, or offset.
|
|
461
495
|
"""
|
|
462
496
|
dim_even = dim + (dim % 2)
|
|
463
|
-
position = torch.arange(n_positions).unsqueeze(1).
|
|
497
|
+
position = torch.arange(n_positions, device=device).unsqueeze(1).to(dtype)
|
|
464
498
|
div_term = torch.exp(
|
|
465
|
-
torch.arange(0, dim_even, 2).
|
|
499
|
+
torch.arange(0, dim_even, 2, device=device).to(dtype)
|
|
500
|
+
* (-math.log(10000.0) / dim_even)
|
|
466
501
|
)
|
|
467
|
-
pe = torch.zeros(n_positions, dim_even)
|
|
502
|
+
pe = torch.zeros(n_positions, dim_even, device=device, dtype=dtype)
|
|
468
503
|
pe[:, 0::2] = torch.sin(position * div_term)
|
|
469
504
|
pe[:, 1::2] = torch.cos(position * div_term)
|
|
470
505
|
# ``.contiguous()`` so an odd-``dim`` truncation owns tight storage -- a
|
{braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/__init__.py
RENAMED
|
@@ -3,10 +3,11 @@
|
|
|
3
3
|
from .atcnet import ATCNet
|
|
4
4
|
from .attentionbasenet import AttentionBaseNet
|
|
5
5
|
from .attn_sleep import AttnSleep
|
|
6
|
+
from .axon import AXON
|
|
6
7
|
from .barista import BaRISTA
|
|
7
8
|
from .base import EEGModuleMixin
|
|
8
|
-
from .bendr import BENDR
|
|
9
|
-
from .biot import BIOT
|
|
9
|
+
from .bendr import BENDR
|
|
10
|
+
from .biot import BIOT
|
|
10
11
|
from .brainbert import BrainBERT
|
|
11
12
|
from .brainmodule import BrainModule
|
|
12
13
|
from .brainomni import BrainOmni, BrainTokenizer
|
|
@@ -21,6 +22,7 @@ from .deep4 import Deep4Net
|
|
|
21
22
|
from .deepsleepnet import DeepSleepNet
|
|
22
23
|
from .dgcnn import DGCNN
|
|
23
24
|
from .diver1 import DIVER1
|
|
25
|
+
from .eeg_clip import EEGCLIP
|
|
24
26
|
from .eegconformer import EEGConformer
|
|
25
27
|
from .eegdino import EEGDINO
|
|
26
28
|
from .eeginception_erp import EEGInceptionERP
|
|
@@ -29,7 +31,7 @@ from .eegitnet import EEGITNet
|
|
|
29
31
|
from .eegminer import EEGMiner
|
|
30
32
|
from .eegnet import EEGNet
|
|
31
33
|
from .eegnex import EEGNeX
|
|
32
|
-
from .eegpt import EEGPT
|
|
34
|
+
from .eegpt import EEGPT
|
|
33
35
|
from .eegsimpleconv import EEGSimpleConv
|
|
34
36
|
from .eegsym import EEGSym
|
|
35
37
|
from .eegtcnet import EEGTCNet
|
|
@@ -39,8 +41,7 @@ from .fblightconvnet import FBLightConvNet
|
|
|
39
41
|
from .fbmsnet import FBMSNet
|
|
40
42
|
from .hybrid import HybridNet
|
|
41
43
|
from .ifnet import IFNet
|
|
42
|
-
from .
|
|
43
|
-
from .labram import InterpolatedLaBraM, Labram
|
|
44
|
+
from .labram import Labram
|
|
44
45
|
from .luna import LUNA
|
|
45
46
|
from .mapa import MAPA
|
|
46
47
|
from .medformer import MEDFormer
|
|
@@ -51,6 +52,7 @@ from .msvtnet import MSVTNet
|
|
|
51
52
|
from .mvpformer import MVPFormer
|
|
52
53
|
from .neuropose import NeuroPose
|
|
53
54
|
from .neurorvq import NeuroRVQ
|
|
55
|
+
from .neurorvq_tokenizer import NeuroRVQTokenizer
|
|
54
56
|
from .patchedtransformer import PBT
|
|
55
57
|
from .popt import PopulationTransformer
|
|
56
58
|
from .reve import REVE
|
|
@@ -59,7 +61,6 @@ from .seizure_transformer import SeizureTransformer
|
|
|
59
61
|
from .sensingdynamics import SensingDynamics
|
|
60
62
|
from .shallow_fbcsp import ShallowFBCSPNet
|
|
61
63
|
from .signal_jepa import (
|
|
62
|
-
InterpolatedSignalJEPA,
|
|
63
64
|
SignalJEPA,
|
|
64
65
|
SignalJEPA_Contextual,
|
|
65
66
|
SignalJEPA_PostLocal,
|
|
@@ -68,20 +69,22 @@ from .signal_jepa import (
|
|
|
68
69
|
from .sinc_shallow import SincShallowNet
|
|
69
70
|
from .sleep_stager_blanco_2020 import SleepStagerBlanco2020
|
|
70
71
|
from .sleep_stager_chambon_2018 import SleepStagerChambon2018
|
|
72
|
+
from .sleepfm import SleepFM, SleepFMStager
|
|
71
73
|
from .sparcnet import SPARCNet
|
|
72
74
|
from .sstdpn import SSTDPN
|
|
73
75
|
from .steegformer import STEEGFormer
|
|
74
76
|
from .syncnet import SyncNet
|
|
75
77
|
from .tcformer import TCFormer
|
|
76
78
|
from .tcn import BDTCN, TCN
|
|
79
|
+
from .tfm_tokenizer import TFMTokenizer, TFMTokenizerOutput
|
|
77
80
|
from .tidnet import TIDNet
|
|
81
|
+
from .tmsanet import TMSANet
|
|
78
82
|
from .tsinception import TSception
|
|
79
83
|
from .usleep import USleep
|
|
80
84
|
from .util import (
|
|
81
85
|
_init_models_dict,
|
|
82
86
|
build_model_config,
|
|
83
87
|
extract_channel_locations_from_chs_info,
|
|
84
|
-
interpolated_models_dict,
|
|
85
88
|
models_mandatory_parameters,
|
|
86
89
|
positions_from_chs_info,
|
|
87
90
|
)
|
|
@@ -94,6 +97,7 @@ _init_models_dict()
|
|
|
94
97
|
|
|
95
98
|
__all__ = [
|
|
96
99
|
"ATCNet",
|
|
100
|
+
"AXON",
|
|
97
101
|
"AttnSleep",
|
|
98
102
|
"AttentionBaseNet",
|
|
99
103
|
"BaRISTA",
|
|
@@ -114,10 +118,10 @@ __all__ = [
|
|
|
114
118
|
"DIVER1",
|
|
115
119
|
"BrainModule",
|
|
116
120
|
"Brant",
|
|
121
|
+
"EEGCLIP",
|
|
117
122
|
"EEGConformer",
|
|
118
123
|
"EEGDINO",
|
|
119
124
|
"EEGPT",
|
|
120
|
-
"InterpolatedEEGPT",
|
|
121
125
|
"EEGInceptionERP",
|
|
122
126
|
"EEGInceptionMI",
|
|
123
127
|
"EEGITNet",
|
|
@@ -138,11 +142,6 @@ __all__ = [
|
|
|
138
142
|
"MetaNeuromotorHand",
|
|
139
143
|
"HybridNet",
|
|
140
144
|
"IFNet",
|
|
141
|
-
"InterpolatedBENDR",
|
|
142
|
-
"InterpolatedBIOT",
|
|
143
|
-
"InterpolatedLaBraM",
|
|
144
|
-
"InterpolatedModel",
|
|
145
|
-
"InterpolatedSignalJEPA",
|
|
146
145
|
"Labram",
|
|
147
146
|
"LUNA",
|
|
148
147
|
"extract_channel_locations_from_chs_info",
|
|
@@ -152,6 +151,7 @@ __all__ = [
|
|
|
152
151
|
"MIRepNet",
|
|
153
152
|
"NeuroRVQ",
|
|
154
153
|
"MSCFormer",
|
|
154
|
+
"NeuroRVQTokenizer",
|
|
155
155
|
"MSVTNet",
|
|
156
156
|
"MVPFormer",
|
|
157
157
|
"PBT",
|
|
@@ -166,20 +166,24 @@ __all__ = [
|
|
|
166
166
|
"SignalJEPA_PreLocal",
|
|
167
167
|
"SincShallowNet",
|
|
168
168
|
"SSTDPN",
|
|
169
|
+
"SleepFM",
|
|
170
|
+
"SleepFMStager",
|
|
169
171
|
"SleepStagerBlanco2020",
|
|
170
172
|
"SleepStagerChambon2018",
|
|
171
173
|
"SPARCNet",
|
|
172
174
|
"STEEGFormer",
|
|
173
175
|
"SyncNet",
|
|
174
176
|
"BDTCN",
|
|
177
|
+
"TFMTokenizer",
|
|
178
|
+
"TFMTokenizerOutput",
|
|
175
179
|
"TCFormer",
|
|
176
180
|
"TCN",
|
|
177
181
|
"TIDNet",
|
|
182
|
+
"TMSANet",
|
|
178
183
|
"TSception",
|
|
179
184
|
"USleep",
|
|
180
185
|
"ZUNA",
|
|
181
186
|
"build_model_config",
|
|
182
187
|
"_init_models_dict",
|
|
183
188
|
"models_mandatory_parameters",
|
|
184
|
-
"interpolated_models_dict",
|
|
185
189
|
]
|
{braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/attn_sleep.py
RENAMED
|
@@ -436,7 +436,6 @@ class _MultiHeadedAttention(nn.Module):
|
|
|
436
436
|
h = int(h)
|
|
437
437
|
self.d_per_head = d_model // h
|
|
438
438
|
self.h = h
|
|
439
|
-
self.attn = torch.empty(0)
|
|
440
439
|
|
|
441
440
|
base_conv = CausalConv1d(
|
|
442
441
|
in_channels=after_reduced_cnn_size,
|
|
@@ -471,9 +470,6 @@ class _MultiHeadedAttention(nn.Module):
|
|
|
471
470
|
# recompute the weighted sum with dropped weights
|
|
472
471
|
x = torch.matmul(attn, value)
|
|
473
472
|
|
|
474
|
-
# stash the pre‑dropout weights if you need them
|
|
475
|
-
self.attn = attn_weights
|
|
476
|
-
|
|
477
473
|
# merge heads and project
|
|
478
474
|
x = x.transpose(1, 2).contiguous().view(nbatches, -1, self.h * self.d_per_head)
|
|
479
475
|
|