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.
Files changed (210) hide show
  1. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/NOTICE.txt +5 -0
  2. {braindecode-1.8.1.dev180519461/braindecode.egg-info → braindecode-1.8.1.dev180582398}/PKG-INFO +1 -1
  3. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/classifier.py +6 -5
  4. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/eegneuralnet.py +1 -1
  5. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/functional/__init__.py +2 -0
  6. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/functional/functions.py +44 -9
  7. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/__init__.py +18 -14
  8. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/attn_sleep.py +0 -4
  9. braindecode-1.8.1.dev180582398/braindecode/models/axon.py +516 -0
  10. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/barista.py +4 -0
  11. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/base.py +98 -17
  12. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/bendr.py +37 -52
  13. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/biot.py +34 -61
  14. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/brainbert.py +10 -11
  15. braindecode-1.8.1.dev180582398/braindecode/models/brainomni.py +917 -0
  16. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/brant.py +12 -10
  17. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/cbramod.py +11 -2
  18. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/codebrain.py +26 -16
  19. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/config.py +1 -2
  20. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/contrawr.py +4 -4
  21. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/csbrain.py +55 -100
  22. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/dgcnn.py +3 -1
  23. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/diver1.py +8 -5
  24. braindecode-1.8.1.dev180582398/braindecode/models/eeg_clip.py +307 -0
  25. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/eegdino.py +20 -12
  26. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/eeginception_mi.py +10 -3
  27. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/eegpt.py +5 -27
  28. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/eegsym.py +17 -7
  29. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/emg2qwerty.py +19 -2
  30. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/labram.py +161 -157
  31. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/luna.py +21 -9
  32. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/mapa.py +36 -25
  33. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/meta_neuromotor.py +25 -2
  34. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/mirepnet.py +16 -0
  35. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/mvpformer.py +6 -1
  36. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/neurorvq.py +168 -226
  37. braindecode-1.8.1.dev180582398/braindecode/models/neurorvq_tokenizer.py +582 -0
  38. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/popt.py +4 -0
  39. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/reve.py +9 -1
  40. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/sensingdynamics.py +10 -5
  41. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/signal_jepa.py +27 -19
  42. braindecode-1.8.1.dev180582398/braindecode/models/sleepfm.py +785 -0
  43. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/steegformer.py +4 -0
  44. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/summary.csv +7 -5
  45. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/syncnet.py +2 -2
  46. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/tcformer.py +6 -5
  47. braindecode-1.8.1.dev180582398/braindecode/models/tfm_tokenizer.py +416 -0
  48. braindecode-1.8.1.dev180582398/braindecode/models/tmsanet.py +233 -0
  49. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/util.py +64 -57
  50. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/zuna.py +18 -9
  51. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/modules/__init__.py +2 -4
  52. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/modules/blocks.py +18 -5
  53. braindecode-1.8.1.dev180582398/braindecode/modules/channels.py +459 -0
  54. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/modules/filter.py +22 -30
  55. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/modules/parametrization.py +29 -0
  56. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/modules/quantization.py +28 -19
  57. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/modules/stats.py +6 -1
  58. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/regressor.py +6 -5
  59. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/training/scoring.py +6 -5
  60. braindecode-1.8.1.dev180582398/braindecode/version.py +1 -0
  61. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/visualization/topology.py +1 -1
  62. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398/braindecode.egg-info}/PKG-INFO +1 -1
  63. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode.egg-info/SOURCES.txt +9 -4
  64. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/api.rst +29 -9
  65. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/index.rst +1 -0
  66. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/models/models_categorization.rst +10 -3
  67. braindecode-1.8.1.dev180582398/docs/user_guide/channel_strategies.rst +59 -0
  68. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/whats_new.rst +162 -14
  69. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/pyproject.toml +3 -0
  70. braindecode-1.8.1.dev180519461/braindecode/models/brainomni.py +0 -1905
  71. braindecode-1.8.1.dev180519461/braindecode/models/interpolated.py +0 -185
  72. braindecode-1.8.1.dev180519461/braindecode/modules/channel_tokenizer.py +0 -215
  73. braindecode-1.8.1.dev180519461/braindecode/modules/interpolation.py +0 -201
  74. braindecode-1.8.1.dev180519461/braindecode/version.py +0 -1
  75. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/LICENSE.txt +0 -0
  76. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/MANIFEST.in +0 -0
  77. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/README.rst +0 -0
  78. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/__init__.py +0 -0
  79. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/augmentation/__init__.py +0 -0
  80. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/augmentation/base.py +0 -0
  81. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/augmentation/functional.py +0 -0
  82. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/augmentation/transforms.py +0 -0
  83. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datasets/__init__.py +0 -0
  84. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datasets/_notebook_viewer.py +0 -0
  85. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datasets/base.py +0 -0
  86. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datasets/bbci.py +0 -0
  87. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datasets/bcicomp.py +0 -0
  88. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datasets/bids/__init__.py +0 -0
  89. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datasets/bids/datasets.py +0 -0
  90. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datasets/bids/format.py +0 -0
  91. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datasets/bids/hub.py +0 -0
  92. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datasets/bids/hub_format.py +0 -0
  93. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datasets/bids/hub_io.py +0 -0
  94. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datasets/bids/hub_validation.py +0 -0
  95. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datasets/bids/iterable.py +0 -0
  96. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datasets/chb_mit.py +0 -0
  97. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datasets/collate.py +0 -0
  98. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datasets/mne.py +0 -0
  99. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datasets/moabb.py +0 -0
  100. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datasets/nmt.py +0 -0
  101. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datasets/registry.py +0 -0
  102. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datasets/siena.py +0 -0
  103. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datasets/sleep_physio_challe_18.py +0 -0
  104. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datasets/sleep_physionet.py +0 -0
  105. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datasets/tuh.py +0 -0
  106. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datasets/utils.py +0 -0
  107. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datasets/xy.py +0 -0
  108. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datautil/__init__.py +0 -0
  109. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datautil/channel_utils.py +0 -0
  110. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datautil/hub_formats.py +0 -0
  111. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datautil/serialization.py +0 -0
  112. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/datautil/util.py +0 -0
  113. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/functional/_real_dft.py +0 -0
  114. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/functional/initialization.py +0 -0
  115. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/atcnet.py +0 -0
  116. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/attentionbasenet.py +0 -0
  117. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/brainmodule.py +0 -0
  118. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/ctnet.py +0 -0
  119. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/dance.py +0 -0
  120. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/deep4.py +0 -0
  121. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/deepsleepnet.py +0 -0
  122. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/eegconformer.py +0 -0
  123. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/eeginception_erp.py +0 -0
  124. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/eegitnet.py +0 -0
  125. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/eegminer.py +0 -0
  126. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/eegnet.py +0 -0
  127. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/eegnex.py +0 -0
  128. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/eegsimpleconv.py +0 -0
  129. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/eegtcnet.py +0 -0
  130. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/fbcnet.py +0 -0
  131. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/fblightconvnet.py +0 -0
  132. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/fbmsnet.py +0 -0
  133. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/hybrid.py +0 -0
  134. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/ifnet.py +0 -0
  135. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/medformer.py +0 -0
  136. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/mscformer.py +0 -0
  137. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/msvtnet.py +0 -0
  138. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/neuropose.py +0 -0
  139. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/patchedtransformer.py +0 -0
  140. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/sccnet.py +0 -0
  141. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/seizure_transformer.py +0 -0
  142. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/shallow_fbcsp.py +0 -0
  143. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/sinc_shallow.py +0 -0
  144. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/sleep_stager_blanco_2020.py +0 -0
  145. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/sleep_stager_chambon_2018.py +0 -0
  146. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/sparcnet.py +0 -0
  147. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/sstdpn.py +0 -0
  148. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/tcn.py +0 -0
  149. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/tidnet.py +0 -0
  150. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/tsinception.py +0 -0
  151. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/usleep.py +0 -0
  152. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/models/vemg2pose.py +0 -0
  153. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/modules/activation.py +0 -0
  154. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/modules/attention.py +0 -0
  155. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/modules/convolution.py +0 -0
  156. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/modules/dance_modules.py +0 -0
  157. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/modules/layers.py +0 -0
  158. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/modules/linear.py +0 -0
  159. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/modules/popt_modules.py +0 -0
  160. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/modules/util.py +0 -0
  161. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/modules/wrapper.py +0 -0
  162. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/preprocessing/__init__.py +0 -0
  163. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/preprocessing/eegprep_preprocess.py +0 -0
  164. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/preprocessing/mne_preprocess.py +0 -0
  165. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/preprocessing/preprocess.py +0 -0
  166. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/preprocessing/util.py +0 -0
  167. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/preprocessing/windowers.py +0 -0
  168. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/samplers/__init__.py +0 -0
  169. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/samplers/base.py +0 -0
  170. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/samplers/ssl.py +0 -0
  171. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/training/__init__.py +0 -0
  172. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/training/callbacks.py +0 -0
  173. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/training/losses.py +0 -0
  174. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/util.py +0 -0
  175. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/visualization/__init__.py +0 -0
  176. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/visualization/activations.py +0 -0
  177. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/visualization/attribution.py +0 -0
  178. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/visualization/confusion_matrices.py +0 -0
  179. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/visualization/frequency.py +0 -0
  180. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/visualization/metrics.py +0 -0
  181. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode/visualization/sanity.py +0 -0
  182. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode.egg-info/dependency_links.txt +0 -0
  183. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode.egg-info/requires.txt +0 -0
  184. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/braindecode.egg-info/top_level.txt +0 -0
  185. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/Makefile +0 -0
  186. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/_templates/autosummary/class.rst +0 -0
  187. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/_templates/autosummary/class_in_subdir.rst +0 -0
  188. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/_templates/autosummary/function.rst +0 -0
  189. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/_templates/autosummary/function_in_subdir.rst +0 -0
  190. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/agent_docs.rst +0 -0
  191. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/cite.rst +0 -0
  192. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/conf.py +0 -0
  193. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/help.rst +0 -0
  194. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/install/install.rst +0 -0
  195. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/install/install_pip.rst +0 -0
  196. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/install/install_source.rst +0 -0
  197. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/models/categorization/attention.rst +0 -0
  198. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/models/categorization/channel.rst +0 -0
  199. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/models/categorization/convolution.rst +0 -0
  200. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/models/categorization/filterbank.rst +0 -0
  201. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/models/categorization/gnn.rst +0 -0
  202. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/models/categorization/interpretable.rst +0 -0
  203. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/models/categorization/lbm.rst +0 -0
  204. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/models/categorization/recurrent.rst +0 -0
  205. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/models/categorization/spd.rst +0 -0
  206. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/models/models.rst +0 -0
  207. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/models/models_table.rst +0 -0
  208. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/models/models_visualization.rst +0 -0
  209. {braindecode-1.8.1.dev180519461 → braindecode-1.8.1.dev180582398}/docs/sg_execution_times.rst +0 -0
  210. {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`
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: braindecode
3
- Version: 1.8.1.dev180519461
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 in a 2-dimensional array
217
- (n_trials x n_targets). Only returned when ``return_targets=True``.
218
- The number of targets depends on the decoding paradigm and can be
219
- either a single value, multiple values, or a sequence.
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(
@@ -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_.forward(X.to(self.device))))
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)
@@ -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
- if input_dtype == torch.bfloat16:
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
- if input_dtype == torch.bfloat16:
203
- x = x.to(input_dtype)
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(n_positions: int, dim: int) -> torch.Tensor:
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).float()
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).float() * (-math.log(10000.0) / dim_even)
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
@@ -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, InterpolatedBENDR
9
- from .biot import BIOT, InterpolatedBIOT
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, InterpolatedEEGPT
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 .interpolated import InterpolatedModel
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
  ]
@@ -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