braindecode 1.8.1.dev177939635__tar.gz → 1.8.1.dev178237886__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.dev177939635/braindecode.egg-info → braindecode-1.8.1.dev178237886}/PKG-INFO +1 -1
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/functional/functions.py +7 -3
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/biot.py +7 -2
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/codebrain.py +29 -4
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/csbrain.py +1 -2
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/eegsym.py +17 -1
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/medformer.py +16 -17
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/meta_neuromotor.py +22 -24
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/modules/dance_modules.py +8 -9
- braindecode-1.8.1.dev178237886/braindecode/version.py +1 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886/braindecode.egg-info}/PKG-INFO +1 -1
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/docs/whats_new.rst +8 -0
- braindecode-1.8.1.dev177939635/braindecode/version.py +0 -1
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/LICENSE.txt +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/MANIFEST.in +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/NOTICE.txt +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/README.rst +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/__init__.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/augmentation/__init__.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/augmentation/base.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/augmentation/functional.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/augmentation/transforms.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/classifier.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/datasets/__init__.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/datasets/_notebook_viewer.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/datasets/base.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/datasets/bbci.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/datasets/bcicomp.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/datasets/bids/__init__.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/datasets/bids/datasets.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/datasets/bids/format.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/datasets/bids/hub.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/datasets/bids/hub_format.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/datasets/bids/hub_io.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/datasets/bids/hub_validation.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/datasets/bids/iterable.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/datasets/chb_mit.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/datasets/collate.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/datasets/mne.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/datasets/moabb.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/datasets/nmt.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/datasets/registry.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/datasets/siena.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/datasets/sleep_physio_challe_18.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/datasets/sleep_physionet.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/datasets/tuh.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/datasets/utils.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/datasets/xy.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/datautil/__init__.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/datautil/channel_utils.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/datautil/hub_formats.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/datautil/serialization.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/datautil/util.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/eegneuralnet.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/functional/__init__.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/functional/_real_dft.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/functional/initialization.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/__init__.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/atcnet.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/attentionbasenet.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/attn_sleep.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/axon.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/barista.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/base.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/bendr.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/brainbert.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/brainmodule.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/brainomni.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/brant.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/cbramod.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/config.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/contrawr.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/ctnet.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/dance.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/deep4.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/deepsleepnet.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/dgcnn.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/diver1.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/eeg_clip.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/eegconformer.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/eegdino.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/eeginception_erp.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/eeginception_mi.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/eegitnet.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/eegminer.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/eegnet.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/eegnex.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/eegpt.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/eegsimpleconv.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/eegtcnet.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/emg2qwerty.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/fbcnet.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/fblightconvnet.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/fbmsnet.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/hybrid.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/ifnet.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/labram.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/luna.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/mapa.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/mirepnet.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/mscformer.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/msvtnet.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/mvpformer.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/neuropose.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/neurorvq.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/neurorvq_tokenizer.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/patchedtransformer.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/popt.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/reve.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/sccnet.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/seizure_transformer.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/sensingdynamics.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/shallow_fbcsp.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/signal_jepa.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/sinc_shallow.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/sleep_stager_blanco_2020.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/sleep_stager_chambon_2018.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/sleepfm.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/sparcnet.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/sstdpn.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/steegformer.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/summary.csv +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/syncnet.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/tcformer.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/tcn.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/tfm_tokenizer.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/tidnet.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/tmsanet.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/tsinception.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/usleep.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/util.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/vemg2pose.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/zuna.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/modules/__init__.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/modules/activation.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/modules/attention.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/modules/blocks.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/modules/channels.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/modules/convolution.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/modules/filter.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/modules/layers.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/modules/linear.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/modules/linear_attention.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/modules/parametrization.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/modules/popt_modules.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/modules/quantization.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/modules/stats.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/modules/util.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/modules/wrapper.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/preprocessing/__init__.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/preprocessing/eegprep_preprocess.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/preprocessing/mne_preprocess.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/preprocessing/preprocess.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/preprocessing/util.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/preprocessing/windowers.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/regressor.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/samplers/__init__.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/samplers/base.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/samplers/ssl.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/training/__init__.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/training/callbacks.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/training/losses.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/training/scoring.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/util.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/visualization/__init__.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/visualization/activations.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/visualization/attribution.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/visualization/confusion_matrices.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/visualization/frequency.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/visualization/metrics.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/visualization/sanity.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/visualization/topology.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode.egg-info/SOURCES.txt +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode.egg-info/dependency_links.txt +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode.egg-info/requires.txt +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode.egg-info/top_level.txt +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/docs/Makefile +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/docs/_templates/autosummary/class.rst +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/docs/_templates/autosummary/class_in_subdir.rst +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/docs/_templates/autosummary/function.rst +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/docs/_templates/autosummary/function_in_subdir.rst +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/docs/agent_docs.rst +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/docs/api.rst +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/docs/cite.rst +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/docs/conf.py +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/docs/help.rst +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/docs/index.rst +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/docs/install/install.rst +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/docs/install/install_pip.rst +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/docs/install/install_source.rst +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/docs/models/categorization/attention.rst +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/docs/models/categorization/channel.rst +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/docs/models/categorization/convolution.rst +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/docs/models/categorization/filterbank.rst +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/docs/models/categorization/gnn.rst +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/docs/models/categorization/interpretable.rst +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/docs/models/categorization/lbm.rst +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/docs/models/categorization/recurrent.rst +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/docs/models/categorization/spd.rst +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/docs/models/models.rst +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/docs/models/models_categorization.rst +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/docs/models/models_table.rst +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/docs/models/models_visualization.rst +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/docs/sg_execution_times.rst +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/docs/user_guide/channel_strategies.rst +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/pyproject.toml +0 -0
- {braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/setup.cfg +0 -0
{braindecode-1.8.1.dev177939635/braindecode.egg-info → braindecode-1.8.1.dev178237886}/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.dev178237886
|
|
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>
|
|
@@ -112,8 +112,11 @@ def prefer_fft_conv(x: torch.Tensor, kernel_size: int) -> bool:
|
|
|
112
112
|
Rule measured for :class:`~braindecode.models.EEGInceptionMI` (48 to 240
|
|
113
113
|
channels, 128-500 Hz, 2 CPU threads, oneDNN on and off): on CPU the FFT
|
|
114
114
|
wins for float16/bfloat16 inputs (no fast half-precision CPU convolution)
|
|
115
|
-
and from ``batch_size * kernel_size >= 600
|
|
116
|
-
|
|
115
|
+
and from ``batch_size * kernel_size >= 600`` if also
|
|
116
|
+
``in_channels * kernel_size >= 120``: with one or two input channels a
|
|
117
|
+
float32 direct convolution stays cheaper up to k = 85 / 31 (13 long
|
|
118
|
+
temporal convolutions of the model zoo, 22 channels x batch 32). GPUs and
|
|
119
|
+
HPUs (no complex dtype) keep the direct convolution.
|
|
117
120
|
|
|
118
121
|
Parameters
|
|
119
122
|
----------
|
|
@@ -123,7 +126,8 @@ def prefer_fft_conv(x: torch.Tensor, kernel_size: int) -> bool:
|
|
|
123
126
|
Kernel length in samples.
|
|
124
127
|
"""
|
|
125
128
|
return x.device.type == "cpu" and (
|
|
126
|
-
x.element_size() == 2
|
|
129
|
+
x.element_size() == 2
|
|
130
|
+
or (x.shape[0] * kernel_size >= 600 and x.shape[1] * kernel_size >= 120)
|
|
127
131
|
)
|
|
128
132
|
|
|
129
133
|
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/biot.py
RENAMED
|
@@ -543,10 +543,15 @@ class _BIOTEncoder(nn.Module):
|
|
|
543
543
|
emb: Tensor
|
|
544
544
|
(batch_size, emb_size)
|
|
545
545
|
"""
|
|
546
|
+
batch_size, n_chans, n_times = x.shape
|
|
547
|
+
# One spectrogram for all channels, channel-major so that each
|
|
548
|
+
# channel's (batch, freq, ts) block is contiguous
|
|
549
|
+
spec = self.stft(x.transpose(0, 1).reshape(n_chans * batch_size, 1, n_times))
|
|
550
|
+
spec = spec.unflatten(0, [n_chans, batch_size])
|
|
546
551
|
emb_seq = []
|
|
547
|
-
for i in range(
|
|
552
|
+
for i in range(n_chans):
|
|
548
553
|
# Getting the spectrogram
|
|
549
|
-
channel_spec_emb =
|
|
554
|
+
channel_spec_emb = spec[i]
|
|
550
555
|
# Linear layer to learn some representation over the frequency domain
|
|
551
556
|
# with permutation
|
|
552
557
|
channel_spec_emb = self.patch_embedding(channel_spec_emb)
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/codebrain.py
RENAMED
|
@@ -697,10 +697,35 @@ class _ResidualBlock(nn.Module):
|
|
|
697
697
|
# Sliding-window attention branch
|
|
698
698
|
# (batch, 2*res_channels, seq_len) -> (batch, seq_len, 2*res_channels)
|
|
699
699
|
h_attn = h_ssm.transpose(1, 2)
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
700
|
+
if (
|
|
701
|
+
self.swa_window_size == 1
|
|
702
|
+
and not self.training
|
|
703
|
+
and not torch.is_grad_enabled()
|
|
704
|
+
and h_attn.device.type == "cpu"
|
|
705
|
+
):
|
|
706
|
+
# A one-wide window keeps only the diagonal: the softmax weights are
|
|
707
|
+
# exactly 1 and 0, so the attention returns its value projection.
|
|
708
|
+
# Same projection calls as nn.MultiheadAttention (on its (seq,
|
|
709
|
+
# batch, embed) view), so the output is unchanged bit for bit. (In
|
|
710
|
+
# training the weights carry dropout; on Gaudi the full attention
|
|
711
|
+
# was faster.)
|
|
712
|
+
# ponytail: the unused query/key projections are computed too, to
|
|
713
|
+
# keep the rounding; in_proj_weight[2E:] alone is ~2x less GEMM.
|
|
714
|
+
embed_dim = self.attention.embed_dim
|
|
715
|
+
seq_first = h_attn.transpose(0, 1)
|
|
716
|
+
value = F.linear(
|
|
717
|
+
seq_first, self.attention.in_proj_weight, self.attention.in_proj_bias
|
|
718
|
+
)[..., 2 * embed_dim :]
|
|
719
|
+
h_attn = (
|
|
720
|
+
self.attention.out_proj(value.reshape(-1, embed_dim))
|
|
721
|
+
.view(seq_first.shape)
|
|
722
|
+
.transpose(0, 1)
|
|
723
|
+
)
|
|
724
|
+
else:
|
|
725
|
+
swa_mask = self.generate_local_window_mask(
|
|
726
|
+
seq_len, self.swa_window_size, x.device, x.dtype
|
|
727
|
+
)
|
|
728
|
+
h_attn, _ = self.attention(h_attn, h_attn, h_attn, attn_mask=swa_mask)
|
|
704
729
|
# (batch, seq_len, 2*res_channels) -> (batch, 2*res_channels, seq_len)
|
|
705
730
|
h_attn = h_attn.transpose(1, 2)
|
|
706
731
|
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/csbrain.py
RENAMED
|
@@ -710,8 +710,7 @@ class _CSBrainEncoderLayer(nn.Module):
|
|
|
710
710
|
for start, stop in self.region_bounds:
|
|
711
711
|
region_global = x[:, start:stop, :, :].mean(dim=1, keepdim=True)
|
|
712
712
|
region_global = region_global.permute(0, 2, 1, 3).reshape(batch * T, 1, Fea)
|
|
713
|
-
|
|
714
|
-
global_features[:, idx : idx + 1, :] = region_global
|
|
713
|
+
global_features[:, start:stop, :] = region_global
|
|
715
714
|
x_enhanced = x_flat + self.global_fc(global_features)
|
|
716
715
|
|
|
717
716
|
attn_output = self.inter_region_attn(
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/eegsym.py
RENAMED
|
@@ -441,6 +441,22 @@ class _AvgPoolTime(nn.Module):
|
|
|
441
441
|
return y.reshape(b, c, d, y.shape[2], s)
|
|
442
442
|
|
|
443
443
|
|
|
444
|
+
class _SpatialConv3d(nn.Conv3d):
|
|
445
|
+
"""``nn.Conv3d`` with a ``(1, 1, k)`` kernel run as ``conv2d`` on the
|
|
446
|
+
``(batch, ch, z * time, space)`` view; same parameters. The depthwise
|
|
447
|
+
``conv3d`` backward segfaults on Gaudi (synapse 1.21)."""
|
|
448
|
+
|
|
449
|
+
def forward(self, x: torch.Tensor) -> torch.Tensor:
|
|
450
|
+
b, c, z, t, s = x.shape
|
|
451
|
+
y = nn.functional.conv2d(
|
|
452
|
+
x.reshape(b, c, z * t, s),
|
|
453
|
+
self.weight.squeeze(2),
|
|
454
|
+
self.bias,
|
|
455
|
+
groups=self.groups,
|
|
456
|
+
)
|
|
457
|
+
return y.reshape(b, -1, z, t, y.shape[-1])
|
|
458
|
+
|
|
459
|
+
|
|
444
460
|
class _InceptionBlock(nn.Module):
|
|
445
461
|
r"""Inception module used in EEGSym architecture.
|
|
446
462
|
|
|
@@ -500,7 +516,7 @@ class _InceptionBlock(nn.Module):
|
|
|
500
516
|
for _ in range(spatial_resnet_repetitions):
|
|
501
517
|
self.spatial_convs.append(
|
|
502
518
|
nn.Sequential(
|
|
503
|
-
|
|
519
|
+
_SpatialConv3d(
|
|
504
520
|
in_channels=filters_per_branch * len(scales_samples),
|
|
505
521
|
out_channels=filters_per_branch * len(scales_samples),
|
|
506
522
|
kernel_size=(1, 1, ncha),
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/medformer.py
RENAMED
|
@@ -425,17 +425,13 @@ class _ListPatchEmbedding(nn.Module):
|
|
|
425
425
|
# Reshape to treat each channel independently: (batch_size * n_chans, 1, n_times)
|
|
426
426
|
x = torch.reshape(x, (batch_size * self.n_chans, 1, self.n_times))
|
|
427
427
|
|
|
428
|
+
# add positional embedding to tag each channel (only when not single_channel)
|
|
429
|
+
if not self.single_channel:
|
|
430
|
+
x = x + self.channel_embedding(x)
|
|
431
|
+
|
|
428
432
|
x_list = []
|
|
429
433
|
for padding, value_embedding in zip(self.paddings, self.value_embeddings):
|
|
430
|
-
|
|
431
|
-
# add positional embedding to tag each channel (only when not single_channel)
|
|
432
|
-
if not self.single_channel:
|
|
433
|
-
x_new = x_copy + self.channel_embedding(x_copy)
|
|
434
|
-
else:
|
|
435
|
-
x_new = x_copy
|
|
436
|
-
x_new = padding(x_new).unsqueeze(
|
|
437
|
-
1
|
|
438
|
-
) # (batch_size, 1, enc_in, seq_len+stride)
|
|
434
|
+
x_new = padding(x).unsqueeze(1) # (batch_size, 1, enc_in, seq_len+stride)
|
|
439
435
|
x_new = value_embedding(x_new) # (batch_size, d_model, 1, patch_num)
|
|
440
436
|
x_new = x_new.squeeze(2).transpose(1, 2) # (batch_size, patch_num, d_model)
|
|
441
437
|
x_list.append(x_new)
|
|
@@ -693,16 +689,19 @@ class _EncoderLayer(nn.Module):
|
|
|
693
689
|
delta: Optional[torch.Tensor] = None,
|
|
694
690
|
) -> Tuple[List[torch.Tensor], List[Optional[torch.Tensor]]]:
|
|
695
691
|
new_x, attn = self.attention(x, attn_mask=attn_mask, tau=tau, delta=delta)
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
692
|
+
lengths = [x_val.shape[1] for x_val in x]
|
|
693
|
+
# Norms and kernel-1 convs act per token: run them once on all
|
|
694
|
+
# granularities. Dropout stays per granularity (same RNG stream).
|
|
695
|
+
x_all = self.norm1(
|
|
696
|
+
torch.cat(
|
|
697
|
+
[x_orig + self.dropout(x_new) for x_orig, x_new in zip(x, new_x)], dim=1
|
|
698
|
+
)
|
|
699
|
+
)
|
|
700
|
+
y = self.activation(self.conv1(x_all.transpose(-1, 1))).split(lengths, dim=-1)
|
|
701
|
+
y = [self.dropout(y_val) for y_val in y]
|
|
703
702
|
y = [self.dropout(self.conv2(y_val).transpose(-1, 1)) for y_val in y]
|
|
704
703
|
|
|
705
|
-
return
|
|
704
|
+
return list(self.norm2(x_all + torch.cat(y, dim=1)).split(lengths, dim=1)), attn
|
|
706
705
|
|
|
707
706
|
|
|
708
707
|
class _Encoder(nn.Module):
|
|
@@ -1075,20 +1075,26 @@ class _RotationInvariantMPFMLP(nn.Module):
|
|
|
1075
1075
|
raise ValueError("hidden_dims must be non-empty")
|
|
1076
1076
|
self.offsets = list(offsets)
|
|
1077
1077
|
self.activation = activation()
|
|
1078
|
-
|
|
1078
|
+
# Roll both channel axes by each offset, half-vectorize and flatten
|
|
1079
|
+
# (freqs, covariance) as one gather: entry (row, col) of rotation
|
|
1080
|
+
# ``offset`` reads entry ((row - offset) % C, (col - offset) % C).
|
|
1081
|
+
kept = _VectorizeSymmetricMatrix(
|
|
1079
1082
|
num_channels=num_channels,
|
|
1080
1083
|
num_adjacent_cov=num_adjacent_cov,
|
|
1081
|
-
)
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
"
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1084
|
+
).flattened_matrix_indices
|
|
1085
|
+
rows, cols = kept // num_channels, kept % num_channels
|
|
1086
|
+
self.register_buffer(
|
|
1087
|
+
"rotation_index",
|
|
1088
|
+
torch.cat(
|
|
1089
|
+
[
|
|
1090
|
+
freq * num_channels**2
|
|
1091
|
+
+ (rows - offset) % num_channels * num_channels
|
|
1092
|
+
+ (cols - offset) % num_channels
|
|
1093
|
+
for offset in self.offsets
|
|
1094
|
+
for freq in range(num_freqs)
|
|
1095
|
+
]
|
|
1096
|
+
),
|
|
1097
|
+
persistent=False,
|
|
1092
1098
|
)
|
|
1093
1099
|
self.features_to_time_last = Rearrange(
|
|
1094
1100
|
"batch time features -> batch features time"
|
|
@@ -1103,18 +1109,10 @@ class _RotationInvariantMPFMLP(nn.Module):
|
|
|
1103
1109
|
dim = hidden_dim
|
|
1104
1110
|
|
|
1105
1111
|
def forward(self, inputs: torch.Tensor) -> torch.Tensor:
|
|
1106
|
-
#
|
|
1107
|
-
|
|
1108
|
-
x =
|
|
1109
|
-
|
|
1110
|
-
inputs.roll(shifts=[offset, offset], dims=[2, 3])
|
|
1111
|
-
for offset in self.offsets
|
|
1112
|
-
],
|
|
1113
|
-
dim=-1,
|
|
1114
|
-
)
|
|
1115
|
-
x = self.rotations_to_time_major(x)
|
|
1116
|
-
x = self.vectorize(x)
|
|
1117
|
-
x = self.flatten_features(x)
|
|
1112
|
+
# (batch, freqs, c1, c2, time) -> (batch, time, rotation, features)
|
|
1113
|
+
x = inputs.permute(0, 4, 1, 2, 3).flatten(2)
|
|
1114
|
+
x = x.index_select(-1, self.rotation_index)
|
|
1115
|
+
x = x.unflatten(-1, (len(self.offsets), -1))
|
|
1118
1116
|
for layer in self.fully_connected_layers:
|
|
1119
1117
|
x = self.activation(layer(x))
|
|
1120
1118
|
x = x.mean(dim=2) # average over the rotations
|
|
@@ -10,6 +10,7 @@ import math
|
|
|
10
10
|
from typing import Dict, Optional
|
|
11
11
|
|
|
12
12
|
import torch
|
|
13
|
+
import torch.nn.functional as F
|
|
13
14
|
from torch import nn
|
|
14
15
|
|
|
15
16
|
from braindecode.functional import sinusoidal_positional_encoding
|
|
@@ -172,15 +173,13 @@ class _Attention(nn.Module):
|
|
|
172
173
|
context = context if context is not None else x
|
|
173
174
|
q = self.to_q(x)
|
|
174
175
|
k, v = self.to_kv(context).chunk(2, dim=-1)
|
|
175
|
-
# (b, n, h * d) -> (b
|
|
176
|
-
q = q.unflatten(-1, (h, -1)).transpose(1, 2)
|
|
177
|
-
k = k.unflatten(-1, (h, -1)).transpose(1, 2)
|
|
178
|
-
v = v.unflatten(-1, (h, -1)).transpose(1, 2)
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
out = out.unflatten(0, (-1, h)).transpose(1, 2).flatten(2)
|
|
183
|
-
return self.to_out(out)
|
|
176
|
+
# (b, n, h * d) -> (b, h, n, d)
|
|
177
|
+
q = q.unflatten(-1, (h, -1)).transpose(1, 2)
|
|
178
|
+
k = k.unflatten(-1, (h, -1)).transpose(1, 2)
|
|
179
|
+
v = v.unflatten(-1, (h, -1)).transpose(1, 2)
|
|
180
|
+
out = F.scaled_dot_product_attention(q, k, v, scale=self.scale)
|
|
181
|
+
# (b, h, n, d) -> (b, n, h * d)
|
|
182
|
+
return self.to_out(out.transpose(1, 2).flatten(2))
|
|
184
183
|
|
|
185
184
|
|
|
186
185
|
class Perceiver(nn.Module):
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "1.8.1.dev178237886"
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886/braindecode.egg-info}/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.dev178237886
|
|
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>
|
|
@@ -28,10 +28,17 @@ Current 1.8.1 (2026-08-31)
|
|
|
28
28
|
Enhancements
|
|
29
29
|
============
|
|
30
30
|
|
|
31
|
+
- :class:`braindecode.models.MetaNeuromotorHand` rotates and half-vectorizes the MPF matrices with one precomputed ``index_select`` instead of three rolls, a stack and a permute copy: CPU train step about 2 % faster, Gaudi neutral; outputs, gradients and state dict unchanged bit for bit (:gh:`1292` by `Bruno Aristimunha`_).
|
|
32
|
+
- :class:`braindecode.models.CodeBrain` skips the attention scores in eval mode on CPU at the default ``swa_window_size=1``, where the window keeps only the diagonal and the attention reduces to its value projection: CPU eval forward 1.25x faster at 19 x 6000 (batch 32); training unchanged; outputs unchanged bit for bit (:gh:`1293` by `Bruno Aristimunha`_).
|
|
31
33
|
- :class:`braindecode.models.LUNA` computes its rotary self-attention with :func:`torch.nn.functional.scaled_dot_product_attention`: CPU forward 1-4 % faster, train step neutral to 2.4 % faster; outputs and gradients change by float rounding only, within master's own float32-vs-float64 difference, also with the released ``PulpBio/LUNA`` weights (:gh:`1282` by `Bruno Aristimunha`_).
|
|
34
|
+
- :class:`braindecode.models.DANCE` computes the Perceiver and decoder attention with :func:`torch.nn.functional.scaled_dot_product_attention` instead of an explicit softmax: eval forward 0.7 % faster on CPU and 1.4 % on Gaudi (22 channels, 32 s, batch 32), train step unchanged; outputs and gradients change by float rounding only, within master's own float32-vs-float64 difference (:gh:`1291` by `Bruno Aristimunha`_).
|
|
35
|
+
- :func:`braindecode.functional.prefer_fft_conv` picks the FFT for a float32 convolution only if also ``in_channels * kernel_size >= 120``: with one or two input channels the direct convolution is up to 2.5x cheaper on CPU; :class:`braindecode.models.EEGInceptionMI` decisions and outputs unchanged (:gh:`1283` by `Bruno Aristimunha`_).
|
|
36
|
+
- :class:`braindecode.models.BIOT` computes the spectrograms of all channels with one STFT instead of one per channel: Gaudi forward 1.6x and train step 1.35x faster (22 channels, batch 32), CPU registry forward 3 % faster; outputs and gradients unchanged bit for bit, also with the released weights (:gh:`1284` by `Bruno Aristimunha`_).
|
|
32
37
|
- :class:`braindecode.models.MVPFormer` builds its attention masks and channel-shift index once per forward instead of in every layer: forward 19-25 % faster on Gaudi and 2-12 % on CPU, outputs and gradients unchanged bit for bit (:gh:`1280` by `Bruno Aristimunha`_).
|
|
33
38
|
- :class:`braindecode.models.AttnSleep`, :class:`braindecode.models.Brant`, :class:`braindecode.models.MSVTNet` and :class:`braindecode.models.PBT` no longer compute tensors their forward discards (AttnSleep's first attention product, Brant's reconstruction projection, MSVTNet's branch heads without ``return_features``, PBT's class-token index); outputs and gradients unchanged bit for bit (:gh:`1281` by `Bruno Aristimunha`_).
|
|
39
|
+
- :class:`braindecode.models.CSBrain` copies each region's mean feature into its electrodes with one slice assignment per region instead of one per electrode: train step about 10 % and forward 7 % faster on Gaudi (22 channels, batch 32), unchanged on CPU; outputs are unchanged and gradients change by float rounding only, within master's own float32-vs-float64 difference (:gh:`1285` by `Bruno Aristimunha`_).
|
|
34
40
|
- :class:`braindecode.modules.FilterBankLayer` broadcasts each FIR band filter over the channels instead of repeating it, so its FFT is computed once per band: :class:`braindecode.models.FBCNet`, :class:`braindecode.models.FBMSNet`, :class:`braindecode.models.FBLightConvNet` and :class:`braindecode.models.IFNet` steps 1-10 % faster on CPU and 8-29 % on Gaudi at batch 2, 0-3 % at batch 32; outputs and gradients change by float rounding only at 22 channels, within master's own float32-vs-float64 difference, and not at all at 3 channels (:gh:`1278` by `Bruno Aristimunha`_).
|
|
41
|
+
- :class:`braindecode.models.MEDFormer` adds its channel embedding once instead of once per granularity, and runs its layer norms and kernel-1 feed-forward convolutions once on all granularities (dropout stays per granularity, same masks): train step 3-7 % faster on CPU and 6-7 % on Gaudi; outputs change by float rounding only (:gh:`1288` by `Bruno Aristimunha`_).
|
|
35
42
|
- :func:`braindecode.functional.plv_time` copies the real and imaginary phasor parts once instead of in every matmul for each batch matrix: :class:`braindecode.models.EEGMiner` CPU forward 1.5x and train step 1.4x faster (22 channels, batch 32, 2 threads); outputs and gradients change by float rounding only, within master's own float32-vs-float64 difference (:gh:`1277` by `Bruno Aristimunha`_).
|
|
36
43
|
- :class:`braindecode.models.EEGInceptionMI` runs its max pooling in channels-last layout and pads even kernels once per inception module: CPU forward 1.1-1.25x faster, outputs, gradients and state dict unchanged (:gh:`1267` by `Bruno Aristimunha`_).
|
|
37
44
|
- :class:`braindecode.models.EEGInceptionMI` computes its temporal convolutions with an FFT on CPU when the input is float16/bfloat16 or ``batch_size * largest_kernel >= 600`` (new ``fft_conv`` argument; ``None`` by default, ``False`` keeps the direct convolution bit for bit): float32 CPU steps 1.5-8.8x faster from batch 8 (2 threads), float16/bfloat16 17-117x; outputs change by float rounding (<= 3.6e-7 relative) (:gh:`1268` by `Bruno Aristimunha`_).
|
|
@@ -349,6 +356,7 @@ Bug fixes
|
|
|
349
356
|
when the window length is not divisible by the segment count, instead of
|
|
350
357
|
replacing them with zeros (:gh:`1279` by `Anton Soloviev`_).
|
|
351
358
|
- Model fixes caught by new CPU-only integration checks (complex tensors, host syncs, kernel gaps, device/dtype follow, training after ``inference_mode``, deepcopy/pickle): BrainOmni/BrainTokenizer SELU trains on Gaudi, EEGSym pools with ``avg_pool2d``, FBCNet/FBMSNet/FBLightConvNet and LUNA run in float16, EEGMiner and AttnSleep deep-copy after training, Labram and NeuroRVQ pickle, SignalJEPA heads accept ``channel_strategy``, and tensors built in ``forward`` follow the input in CodeBrain, TCFormer, LUNA, MVPFormer, BrainOmni, ZUNA, DIVER1 and EEGDINO; float32 outputs unchanged (:gh:`1253` by `Bruno Aristimunha`_)
|
|
359
|
+
- :class:`braindecode.models.EEGSym` trains on Gaudi: its depthwise spatial ``Conv3d`` with a ``(1, 1, n_chans)`` kernel runs as a conv2d on a view, since the Gaudi graph compiler segfaulted on the depthwise conv3d backward; same state dict, outputs unchanged, gradients change by float rounding only (:gh:`1289` by `Bruno Aristimunha`_).
|
|
352
360
|
- :func:`braindecode.functional.hilbert_freq` returns float16 for float16 input (it
|
|
353
361
|
returned float32), so :class:`braindecode.models.EEGMiner` runs after
|
|
354
362
|
``model.to(torch.float16)`` (:gh:`1259` by `Bruno Aristimunha`_)
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "1.8.1.dev177939635"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/augmentation/base.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/datasets/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/datasets/base.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/datasets/bbci.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/datasets/bcicomp.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/datasets/bids/hub.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/datasets/chb_mit.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/datasets/collate.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/datasets/mne.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/datasets/moabb.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/datasets/nmt.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/datasets/registry.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/datasets/siena.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/datasets/tuh.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/datasets/utils.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/datasets/xy.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/datautil/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/datautil/util.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/eegneuralnet.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/functional/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/__init__.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/atcnet.py
RENAMED
|
File without changes
|
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/attn_sleep.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/axon.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/barista.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/base.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/bendr.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/brainbert.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/brainmodule.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/brainomni.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/brant.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/cbramod.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/config.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/contrawr.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/ctnet.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/dance.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/deep4.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/deepsleepnet.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/dgcnn.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/diver1.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/eeg_clip.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/eegconformer.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/eegdino.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/eegitnet.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/eegminer.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/eegnet.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/eegnex.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/eegpt.py
RENAMED
|
File without changes
|
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/eegtcnet.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/emg2qwerty.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/fbcnet.py
RENAMED
|
File without changes
|
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/fbmsnet.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/hybrid.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/ifnet.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/labram.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/luna.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/mapa.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/mirepnet.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/mscformer.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/msvtnet.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/mvpformer.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/neuropose.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/neurorvq.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/popt.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/reve.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/sccnet.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/signal_jepa.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/sinc_shallow.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/sleepfm.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/sparcnet.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/sstdpn.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/steegformer.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/summary.csv
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/syncnet.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/tcformer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/tidnet.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/tmsanet.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/tsinception.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/usleep.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/util.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/vemg2pose.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/models/zuna.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/modules/__init__.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/modules/activation.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/modules/attention.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/modules/blocks.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/modules/channels.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/modules/convolution.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/modules/filter.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/modules/layers.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/modules/linear.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/modules/stats.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/modules/util.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/modules/wrapper.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/preprocessing/util.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/samplers/__init__.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/samplers/base.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/samplers/ssl.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/training/__init__.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/training/callbacks.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/training/losses.py
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode/training/scoring.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode.egg-info/requires.txt
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/braindecode.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/docs/install/install_pip.rst
RENAMED
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/docs/install/install_source.rst
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/docs/models/categorization/gnn.rst
RENAMED
|
File without changes
|
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/docs/models/categorization/lbm.rst
RENAMED
|
File without changes
|
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/docs/models/categorization/spd.rst
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/docs/models/models_table.rst
RENAMED
|
File without changes
|
|
File without changes
|
{braindecode-1.8.1.dev177939635 → braindecode-1.8.1.dev178237886}/docs/sg_execution_times.rst
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|