braindecode 1.8.1.dev169274909__tar.gz → 1.8.1.dev169794550__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 (190) hide show
  1. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/NOTICE.txt +4 -5
  2. {braindecode-1.8.1.dev169274909/braindecode.egg-info → braindecode-1.8.1.dev169794550}/PKG-INFO +3 -3
  3. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/datasets/base.py +4 -0
  4. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/datautil/serialization.py +4 -1
  5. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/functional/__init__.py +0 -6
  6. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/functional/functions.py +20 -110
  7. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/__init__.py +6 -0
  8. braindecode-1.8.1.dev169794550/braindecode/models/barista.py +699 -0
  9. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/base.py +25 -2
  10. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/bendr.py +2 -0
  11. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/biot.py +1 -0
  12. braindecode-1.8.1.dev169794550/braindecode/models/brainbert.py +448 -0
  13. braindecode-1.8.1.dev169794550/braindecode/models/brant.py +477 -0
  14. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/cbramod.py +3 -0
  15. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/eegdino.py +2 -0
  16. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/eegpt.py +1 -0
  17. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/labram.py +1 -0
  18. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/meta_neuromotor.py +1 -0
  19. braindecode-1.8.1.dev169794550/braindecode/models/mirepnet.py +368 -0
  20. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/mvpformer.py +1 -0
  21. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/reve.py +12 -82
  22. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/signal_jepa.py +3 -0
  23. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/steegformer.py +66 -19
  24. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/summary.csv +4 -1
  25. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/util.py +117 -1
  26. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/zuna.py +9 -34
  27. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/modules/__init__.py +0 -2
  28. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/modules/attention.py +7 -1
  29. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/modules/blocks.py +0 -68
  30. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/modules/filter.py +8 -7
  31. braindecode-1.8.1.dev169794550/braindecode/modules/parametrization.py +62 -0
  32. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/preprocessing/windowers.py +31 -7
  33. braindecode-1.8.1.dev169794550/braindecode/version.py +1 -0
  34. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550/braindecode.egg-info}/PKG-INFO +3 -3
  35. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode.egg-info/SOURCES.txt +3 -0
  36. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode.egg-info/requires.txt +2 -2
  37. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/docs/api.rst +4 -4
  38. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/docs/install/install.rst +4 -1
  39. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/docs/whats_new.rst +111 -2
  40. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/pyproject.toml +2 -3
  41. braindecode-1.8.1.dev169274909/braindecode/models/barista.py +0 -1168
  42. braindecode-1.8.1.dev169274909/braindecode/modules/parametrization.py +0 -38
  43. braindecode-1.8.1.dev169274909/braindecode/version.py +0 -1
  44. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/LICENSE.txt +0 -0
  45. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/MANIFEST.in +0 -0
  46. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/README.rst +0 -0
  47. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/__init__.py +0 -0
  48. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/augmentation/__init__.py +0 -0
  49. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/augmentation/base.py +0 -0
  50. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/augmentation/functional.py +0 -0
  51. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/augmentation/transforms.py +0 -0
  52. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/classifier.py +0 -0
  53. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/datasets/__init__.py +0 -0
  54. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/datasets/_notebook_viewer.py +0 -0
  55. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/datasets/bbci.py +0 -0
  56. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/datasets/bcicomp.py +0 -0
  57. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/datasets/bids/__init__.py +0 -0
  58. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/datasets/bids/datasets.py +0 -0
  59. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/datasets/bids/format.py +0 -0
  60. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/datasets/bids/hub.py +0 -0
  61. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/datasets/bids/hub_format.py +0 -0
  62. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/datasets/bids/hub_io.py +0 -0
  63. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/datasets/bids/hub_validation.py +0 -0
  64. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/datasets/bids/iterable.py +0 -0
  65. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/datasets/chb_mit.py +0 -0
  66. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/datasets/collate.py +0 -0
  67. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/datasets/mne.py +0 -0
  68. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/datasets/moabb.py +0 -0
  69. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/datasets/nmt.py +0 -0
  70. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/datasets/registry.py +0 -0
  71. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/datasets/siena.py +0 -0
  72. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/datasets/sleep_physio_challe_18.py +0 -0
  73. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/datasets/sleep_physionet.py +0 -0
  74. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/datasets/tuh.py +0 -0
  75. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/datasets/utils.py +0 -0
  76. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/datasets/xy.py +0 -0
  77. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/datautil/__init__.py +0 -0
  78. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/datautil/channel_utils.py +0 -0
  79. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/datautil/hub_formats.py +0 -0
  80. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/datautil/util.py +0 -0
  81. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/eegneuralnet.py +0 -0
  82. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/functional/initialization.py +0 -0
  83. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/atcnet.py +0 -0
  84. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/attentionbasenet.py +0 -0
  85. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/attn_sleep.py +0 -0
  86. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/brainmodule.py +0 -0
  87. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/codebrain.py +0 -0
  88. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/config.py +0 -0
  89. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/contrawr.py +0 -0
  90. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/ctnet.py +0 -0
  91. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/dance.py +0 -0
  92. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/deep4.py +0 -0
  93. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/deepsleepnet.py +0 -0
  94. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/dgcnn.py +0 -0
  95. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/eegconformer.py +0 -0
  96. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/eeginception_erp.py +0 -0
  97. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/eeginception_mi.py +0 -0
  98. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/eegitnet.py +0 -0
  99. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/eegminer.py +0 -0
  100. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/eegnet.py +0 -0
  101. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/eegnex.py +0 -0
  102. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/eegsimpleconv.py +0 -0
  103. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/eegsym.py +0 -0
  104. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/eegtcnet.py +0 -0
  105. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/emg2qwerty.py +0 -0
  106. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/fbcnet.py +0 -0
  107. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/fblightconvnet.py +0 -0
  108. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/fbmsnet.py +0 -0
  109. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/hybrid.py +0 -0
  110. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/ifnet.py +0 -0
  111. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/interpolated.py +0 -0
  112. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/luna.py +0 -0
  113. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/medformer.py +0 -0
  114. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/msvtnet.py +0 -0
  115. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/neuropose.py +0 -0
  116. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/patchedtransformer.py +0 -0
  117. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/sccnet.py +0 -0
  118. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/sensingdynamics.py +0 -0
  119. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/shallow_fbcsp.py +0 -0
  120. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/sinc_shallow.py +0 -0
  121. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/sleep_stager_blanco_2020.py +0 -0
  122. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/sleep_stager_chambon_2018.py +0 -0
  123. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/sparcnet.py +0 -0
  124. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/sstdpn.py +0 -0
  125. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/syncnet.py +0 -0
  126. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/tcformer.py +0 -0
  127. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/tcn.py +0 -0
  128. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/tidnet.py +0 -0
  129. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/tsinception.py +0 -0
  130. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/usleep.py +0 -0
  131. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/models/vemg2pose.py +0 -0
  132. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/modules/activation.py +0 -0
  133. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/modules/convolution.py +0 -0
  134. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/modules/dance_modules.py +0 -0
  135. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/modules/interpolation.py +0 -0
  136. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/modules/layers.py +0 -0
  137. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/modules/linear.py +0 -0
  138. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/modules/stats.py +0 -0
  139. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/modules/util.py +0 -0
  140. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/modules/wrapper.py +0 -0
  141. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/preprocessing/__init__.py +0 -0
  142. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/preprocessing/eegprep_preprocess.py +0 -0
  143. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/preprocessing/mne_preprocess.py +0 -0
  144. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/preprocessing/preprocess.py +0 -0
  145. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/preprocessing/util.py +0 -0
  146. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/regressor.py +0 -0
  147. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/samplers/__init__.py +0 -0
  148. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/samplers/base.py +0 -0
  149. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/samplers/ssl.py +0 -0
  150. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/training/__init__.py +0 -0
  151. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/training/callbacks.py +0 -0
  152. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/training/losses.py +0 -0
  153. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/training/scoring.py +0 -0
  154. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/util.py +0 -0
  155. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/visualization/__init__.py +0 -0
  156. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/visualization/activations.py +0 -0
  157. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/visualization/attribution.py +0 -0
  158. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/visualization/confusion_matrices.py +0 -0
  159. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/visualization/frequency.py +0 -0
  160. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/visualization/metrics.py +0 -0
  161. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/visualization/sanity.py +0 -0
  162. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode/visualization/topology.py +0 -0
  163. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode.egg-info/dependency_links.txt +0 -0
  164. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/braindecode.egg-info/top_level.txt +0 -0
  165. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/docs/Makefile +0 -0
  166. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/docs/_templates/autosummary/class.rst +0 -0
  167. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/docs/_templates/autosummary/class_in_subdir.rst +0 -0
  168. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/docs/_templates/autosummary/function.rst +0 -0
  169. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/docs/_templates/autosummary/function_in_subdir.rst +0 -0
  170. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/docs/cite.rst +0 -0
  171. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/docs/conf.py +0 -0
  172. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/docs/help.rst +0 -0
  173. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/docs/index.rst +0 -0
  174. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/docs/install/install_pip.rst +0 -0
  175. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/docs/install/install_source.rst +0 -0
  176. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/docs/models/categorization/attention.rst +0 -0
  177. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/docs/models/categorization/channel.rst +0 -0
  178. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/docs/models/categorization/convolution.rst +0 -0
  179. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/docs/models/categorization/filterbank.rst +0 -0
  180. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/docs/models/categorization/gnn.rst +0 -0
  181. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/docs/models/categorization/interpretable.rst +0 -0
  182. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/docs/models/categorization/lbm.rst +0 -0
  183. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/docs/models/categorization/recurrent.rst +0 -0
  184. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/docs/models/categorization/spd.rst +0 -0
  185. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/docs/models/models.rst +0 -0
  186. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/docs/models/models_categorization.rst +0 -0
  187. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/docs/models/models_table.rst +0 -0
  188. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/docs/models/models_visualization.rst +0 -0
  189. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/docs/sg_execution_times.rst +0 -0
  190. {braindecode-1.8.1.dev169274909 → braindecode-1.8.1.dev169794550}/setup.cfg +0 -0
@@ -42,6 +42,7 @@ The following components are licensed under the MIT License:
42
42
  - `braindecode/models/medformer.py`
43
43
  - `braindecode/models/tcformer.py`
44
44
  - `braindecode/models/ifnet.py`
45
+ - `braindecode/models/mirepnet.py`
45
46
 
46
47
  ### Apache-2.0 Licensed Files
47
48
 
@@ -50,16 +51,14 @@ The following components are licensed under the Apache License 2.0:
50
51
  - `braindecode/models/mvpformer.py`
51
52
  - `braindecode/models/zuna.py`
52
53
  - `braindecode/models/luna.py`
54
+ - `braindecode/models/brant.py`
53
55
 
54
56
  ### USC Academic License Files
55
57
 
56
- The following component is a derivative of `ShanechiLab/BaRISTA`, released by
57
- the University of Southern California under an academic license that permits
58
- use, copying, modification and distribution for educational, research and
59
- non-profit purposes only. Commercial use requires an agreement with the USC
60
- Stevens Center for Innovation.
58
+ [License](https://github.com/ShanechiLab/BaRISTA/blob/master/LICENSE.md)
61
59
 
62
60
  - `braindecode/models/barista.py`
61
+ - `docs/_static/model/barista.jpeg`
63
62
 
64
63
  ## License Links
65
64
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: braindecode
3
- Version: 1.8.1.dev169274909
3
+ Version: 1.8.1.dev169794550
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>
@@ -22,8 +22,8 @@ Requires-Python: >=3.11
22
22
  Description-Content-Type: text/x-rst
23
23
  License-File: LICENSE.txt
24
24
  License-File: NOTICE.txt
25
- Requires-Dist: torch>=2.0
26
- Requires-Dist: torchaudio>=2.0
25
+ Requires-Dist: torch>=2.4
26
+ Requires-Dist: torchaudio>=2.4
27
27
  Requires-Dist: mne>=1.11.0
28
28
  Requires-Dist: mne_bids>=0.18
29
29
  Requires-Dist: h5py
@@ -5,6 +5,7 @@
5
5
  # Simon Brandt <simonbrandt@protonmail.com>
6
6
  # David Sabbagh <dav.sabbagh@gmail.com>
7
7
  # Robin Schirrmeister <robintibor@gmail.com>
8
+ # Sarthak Tayal <sarthaktayal2@gmail.com>
8
9
  #
9
10
  # License: BSD (3-clause)
10
11
 
@@ -1398,6 +1399,9 @@ class BaseConcatDataset(ConcatDataset, HubDatasetMixin, Generic[T]):
1398
1399
  df = ds._windows.metadata
1399
1400
  else:
1400
1401
  df = ds.metadata
1402
+ if isinstance(df, pd.DataFrame):
1403
+ # copy so the description columns stay out of the dataset
1404
+ df = df.copy()
1401
1405
  for k, v in ds.description.items():
1402
1406
  df[k] = v
1403
1407
  all_dfs.append(df)
@@ -1,6 +1,7 @@
1
1
  """Convenience functions for storing and loading of windows datasets."""
2
2
 
3
3
  # Authors: Lukas Gemein <l.gemein@gmail.com>
4
+ # Sarthak Tayal <sarthaktayal2@gmail.com>
4
5
  #
5
6
  # License: BSD (3-clause)
6
7
 
@@ -270,7 +271,9 @@ def _load_parallel(path, i, preload, is_raw, has_stored_windows):
270
271
  else:
271
272
  window_kwargs = _load_kwargs_json("window_kwargs", sub_dir)
272
273
  windows_ds_kwargs = [
273
- kwargs[1] for kwargs in window_kwargs if kwargs[0] == "WindowsDataset"
274
+ kwargs[1]
275
+ for kwargs in window_kwargs
276
+ if kwargs[0] in ("WindowsDataset", "EEGWindowsDataset")
274
277
  ]
275
278
  windows_ds_kwargs = windows_ds_kwargs[0] if len(windows_ds_kwargs) == 1 else {}
276
279
  if is_raw:
@@ -1,6 +1,5 @@
1
1
  from .functions import (
2
2
  _get_gaussian_kernel1d,
3
- apply_rotary,
4
3
  daubechies_filters,
5
4
  drop_path,
6
5
  dwt_max_level,
@@ -9,8 +8,6 @@ from .functions import (
9
8
  iou_1d,
10
9
  pairwise_iou_1d,
11
10
  plv_time,
12
- rotary_positional_encoding,
13
- rotate_half,
14
11
  safe_log,
15
12
  sinusoidal_positional_encoding,
16
13
  square,
@@ -20,7 +17,6 @@ from .initialization import glorot_weight_zero_bias, rescale_parameter
20
17
 
21
18
  __all__ = [
22
19
  "_get_gaussian_kernel1d",
23
- "apply_rotary",
24
20
  "daubechies_filters",
25
21
  "drop_path",
26
22
  "dwt_max_level",
@@ -29,8 +25,6 @@ __all__ = [
29
25
  "iou_1d",
30
26
  "pairwise_iou_1d",
31
27
  "plv_time",
32
- "rotary_positional_encoding",
33
- "rotate_half",
34
28
  "safe_log",
35
29
  "sinusoidal_positional_encoding",
36
30
  "square",
@@ -1,7 +1,6 @@
1
1
  # Authors: Robin Schirrmeister <robintibor@gmail.com>
2
2
  # Bruno Aristimunha <b.aristimunha@gmail.com>
3
3
  # Sarthak Tayal <sarthaktayal2@gmail.com>
4
- # Julien Gadonneix <juliengado.2001@gmail.com>
5
4
  #
6
5
  # License: BSD (3-clause)
7
6
 
@@ -166,18 +165,37 @@ def hilbert_freq(x: torch.Tensor, forward_fourier: bool = True) -> torch.Tensor:
166
165
  https://github.com/scipy/scipy/blob/v1.14.1/scipy/signal/_signaltools.py#L2287-L2394
167
166
 
168
167
  """
168
+ input_dtype = x.dtype
169
+ # ``view_as_complex`` does not accept bfloat16 real/imaginary pairs. The
170
+ # HPU path can produce bfloat16 Fourier coefficients under autocast, so do
171
+ # the complex-valued part in float32 and restore the real-valued contract
172
+ # at the boundary. Promoting before the FFT also covers backends that do
173
+ # not implement bfloat16 FFT kernels.
174
+ if input_dtype == torch.bfloat16:
175
+ x = x.float()
176
+
169
177
  if forward_fourier:
178
+ seq_len = x.shape[-1]
170
179
  x = torch.fft.rfft(x, norm=None, dim=-1)
171
180
  x = torch.view_as_real(x)
181
+ else:
182
+ # The one-sided spectrum does not record whether the signal length
183
+ # was odd or even, so assume an even length here.
184
+ seq_len = 2 * (x.shape[-2] - 1)
172
185
  x = x * 2.0
173
186
  x[..., 0, :] = x[..., 0, :] / 2.0 # Don't multiply the DC-term by 2
187
+ if forward_fourier and seq_len % 2 == 0:
188
+ # Nor the Nyquist term, which only exists for even lengths
189
+ x[..., -1, :] = x[..., -1, :] / 2.0
174
190
  x = F.pad(
175
- x, [0, 0, 0, x.shape[-2] - 2]
191
+ x, [0, 0, 0, seq_len - x.shape[-2]]
176
192
  ) # Fill Fourier coefficients to retain shape
177
193
  x = torch.view_as_complex(x)
178
194
  x = torch.fft.ifft(x, norm=None, dim=-1) # returns complex signal
179
195
  x = torch.view_as_real(x)
180
196
 
197
+ if input_dtype == torch.bfloat16:
198
+ x = x.to(input_dtype)
181
199
  return x
182
200
 
183
201
 
@@ -447,111 +465,3 @@ def sinusoidal_positional_encoding(n_positions: int, dim: int) -> torch.Tensor:
447
465
  # ``.contiguous()`` so an odd-``dim`` truncation owns tight storage -- a
448
466
  # non-contiguous view over the padded width breaks safetensors buffer saving.
449
467
  return pe[:, :dim].contiguous()
450
-
451
-
452
- def rotary_positional_encoding(
453
- n_positions: int, head_dim: int, base: float = 10000.0
454
- ) -> tuple[torch.Tensor, torch.Tensor]:
455
- r"""Cosine and sine tables of a half-split rotary embedding (RoPE).
456
-
457
- RoPE [Su2021]_ encodes position by rotating each attention head in the
458
- :math:`d/2` planes formed by pairing up its dimensions, the plane of index
459
- :math:`j` turning by :math:`p \cdot base^{-2j/d}` at position :math:`p`.
460
-
461
- Pairs are formed *half-split*, as :math:`(x_j, x_{j + d/2})`, which is the
462
- convention of GPT-NeoX, Llama and the transformers library, rather than the
463
- *interleaved* :math:`(x_{2j}, x_{2j+1})` of the original paper. The two
464
- differ only by a fixed permutation of the head dimension, so a model trained
465
- from scratch is indifferent, but a pre-trained checkpoint is not. Use
466
- :func:`apply_rotary`, whose pairing matches.
467
-
468
- Each of the :math:`d/2` angles is therefore tabulated twice, at ``j`` and at
469
- ``j + head_dim // 2``, so the tables broadcast against a full-width head.
470
-
471
- Parameters
472
- ----------
473
- n_positions : int
474
- Number of positions to tabulate.
475
- head_dim : int
476
- Dimension of an attention head. Must be even.
477
- base : float, default=10000.0
478
- Base of the geometric progression of frequencies. Larger values lengthen
479
- the wavelengths, extending the range of positions that stay
480
- distinguishable.
481
-
482
- Returns
483
- -------
484
- tuple of torch.Tensor
485
- Two ``(n_positions, head_dim)`` float tables, the cosines and the sines.
486
- Callers index them with their own positions and add broadcast axes.
487
-
488
- References
489
- ----------
490
- .. [Su2021] Su, J., Lu, Y., Pan, S., Murtadha, A., Wen, B., & Liu, Y.
491
- (2021). RoFormer: Enhanced Transformer with Rotary Position Embedding.
492
- arXiv preprint arXiv:2104.09864.
493
-
494
- Examples
495
- --------
496
- >>> import torch
497
- >>> from braindecode.functional import rotary_positional_encoding
498
- >>> cos, sin = rotary_positional_encoding(n_positions=16, head_dim=8)
499
- >>> cos.shape
500
- torch.Size([16, 8])
501
- """
502
- if head_dim % 2:
503
- raise ValueError(
504
- f"head_dim must be even to pair up its dimensions, got {head_dim}."
505
- )
506
- inv_freq = 1.0 / torch.pow(
507
- base, torch.arange(0, head_dim, 2, dtype=torch.float32) / head_dim
508
- )
509
- angles = torch.outer(torch.arange(n_positions, dtype=torch.float32), inv_freq)
510
- # Concatenating rather than interleaving is what places the angle of plane j
511
- # at j and j + head_dim // 2, which is the pairing rotate_half applies.
512
- angles = torch.cat((angles, angles), dim=-1)
513
- return angles.cos(), angles.sin()
514
-
515
-
516
- def rotate_half(x: torch.Tensor) -> torch.Tensor:
517
- """Swap the two halves of the last axis of ``x``, negating the second one.
518
-
519
- The companion of :func:`rotary_positional_encoding`: pairing dimension
520
- :math:`j` with :math:`j + d/2` makes this the quarter-turn that
521
- :func:`apply_rotary` mixes into the unrotated tensor.
522
-
523
- Parameters
524
- ----------
525
- x : torch.Tensor
526
- Tensor whose last axis is even.
527
-
528
- Returns
529
- -------
530
- torch.Tensor
531
- Tensor of the same shape, holding ``(-x[..., d/2:], x[..., :d/2])``.
532
- """
533
- first, second = x.chunk(2, dim=-1)
534
- return torch.cat((-second, first), dim=-1)
535
-
536
-
537
- def apply_rotary(x: torch.Tensor, cos: torch.Tensor, sin: torch.Tensor) -> torch.Tensor:
538
- r"""Rotate ``x`` by the angles of a half-split rotary embedding.
539
-
540
- Computes :math:`x \cos\theta + \mathrm{rotate\_half}(x) \sin\theta`, which
541
- turns each pair :math:`(x_j, x_{j + d/2})` by :math:`\theta_j` in its own
542
- plane. Being a rotation, it leaves the norm of every head unchanged.
543
-
544
- Parameters
545
- ----------
546
- x : torch.Tensor
547
- Queries or keys, with the head dimension last.
548
- cos, sin : torch.Tensor
549
- Tables from :func:`rotary_positional_encoding`, indexed by the positions
550
- of ``x`` and carrying whatever axes are needed to broadcast against it.
551
-
552
- Returns
553
- -------
554
- torch.Tensor
555
- Rotated tensor, of the shape and dtype of ``x``.
556
- """
557
- return x * cos.to(x.dtype) + rotate_half(x) * sin.to(x.dtype)
@@ -7,7 +7,9 @@ from .barista import BaRISTA
7
7
  from .base import EEGModuleMixin
8
8
  from .bendr import BENDR, InterpolatedBENDR
9
9
  from .biot import BIOT, InterpolatedBIOT
10
+ from .brainbert import BrainBERT
10
11
  from .brainmodule import BrainModule
12
+ from .brant import Brant
11
13
  from .cbramod import CBraMod
12
14
  from .codebrain import CodeBrain
13
15
  from .contrawr import ContraWR
@@ -39,6 +41,7 @@ from .labram import InterpolatedLaBraM, Labram
39
41
  from .luna import LUNA
40
42
  from .medformer import MEDFormer
41
43
  from .meta_neuromotor import MetaNeuromotorHand
44
+ from .mirepnet import MIRepNet
42
45
  from .msvtnet import MSVTNet
43
46
  from .mvpformer import MVPFormer
44
47
  from .neuropose import NeuroPose
@@ -89,6 +92,7 @@ __all__ = [
89
92
  "EEGModuleMixin",
90
93
  "BIOT",
91
94
  "BENDR",
95
+ "BrainBERT",
92
96
  "CBraMod",
93
97
  "CodeBrain",
94
98
  "ContraWR",
@@ -97,6 +101,7 @@ __all__ = [
97
101
  "Deep4Net",
98
102
  "DeepSleepNet",
99
103
  "BrainModule",
104
+ "Brant",
100
105
  "EEGConformer",
101
106
  "EEGDINO",
102
107
  "EEGPT",
@@ -131,6 +136,7 @@ __all__ = [
131
136
  "extract_channel_locations_from_chs_info",
132
137
  "positions_from_chs_info",
133
138
  "MEDFormer",
139
+ "MIRepNet",
134
140
  "MSVTNet",
135
141
  "MVPFormer",
136
142
  "PBT",