braindecode 1.8.1.dev168490289__tar.gz → 1.8.1.dev169087728__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (200) hide show
  1. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/NOTICE.txt +13 -2
  2. {braindecode-1.8.1.dev168490289/braindecode.egg-info → braindecode-1.8.1.dev169087728}/PKG-INFO +3 -1
  3. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/classifier.py +3 -2
  4. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datasets/tuh.py +2 -1
  5. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/__init__.py +11 -0
  6. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/base.py +16 -0
  7. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/bendr.py +14 -12
  8. braindecode-1.8.1.dev169087728/braindecode/models/brainomni.py +1905 -0
  9. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/cbramod.py +36 -9
  10. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/deep4.py +28 -12
  11. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/eegdino.py +4 -1
  12. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/eegpt.py +14 -2
  13. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/labram.py +42 -9
  14. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/luna.py +23 -3
  15. braindecode-1.8.1.dev169087728/braindecode/models/mapa.py +851 -0
  16. braindecode-1.8.1.dev169087728/braindecode/models/neurorvq.py +648 -0
  17. braindecode-1.8.1.dev169087728/braindecode/models/popt.py +320 -0
  18. braindecode-1.8.1.dev169087728/braindecode/models/seizure_transformer.py +407 -0
  19. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/shallow_fbcsp.py +15 -8
  20. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/signal_jepa.py +4 -1
  21. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/summary.csv +6 -0
  22. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/util.py +114 -0
  23. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/zuna.py +3 -3
  24. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/modules/__init__.py +6 -0
  25. braindecode-1.8.1.dev169087728/braindecode/modules/channel_tokenizer.py +215 -0
  26. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/modules/convolution.py +25 -14
  27. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/modules/layers.py +4 -2
  28. braindecode-1.8.1.dev169087728/braindecode/modules/popt_modules.py +187 -0
  29. braindecode-1.8.1.dev169087728/braindecode/modules/quantization.py +402 -0
  30. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/regressor.py +35 -3
  31. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/training/losses.py +7 -2
  32. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/training/scoring.py +12 -4
  33. braindecode-1.8.1.dev169087728/braindecode/version.py +1 -0
  34. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728/braindecode.egg-info}/PKG-INFO +3 -1
  35. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode.egg-info/SOURCES.txt +9 -0
  36. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode.egg-info/requires.txt +2 -0
  37. braindecode-1.8.1.dev169087728/docs/agent_docs.rst +60 -0
  38. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/docs/api.rst +10 -0
  39. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/docs/conf.py +7 -0
  40. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/docs/whats_new.rst +148 -0
  41. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/pyproject.toml +2 -0
  42. braindecode-1.8.1.dev168490289/braindecode/version.py +0 -1
  43. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/LICENSE.txt +0 -0
  44. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/MANIFEST.in +0 -0
  45. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/README.rst +0 -0
  46. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/__init__.py +0 -0
  47. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/augmentation/__init__.py +0 -0
  48. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/augmentation/base.py +0 -0
  49. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/augmentation/functional.py +0 -0
  50. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/augmentation/transforms.py +0 -0
  51. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datasets/__init__.py +0 -0
  52. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datasets/_notebook_viewer.py +0 -0
  53. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datasets/base.py +0 -0
  54. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datasets/bbci.py +0 -0
  55. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datasets/bcicomp.py +0 -0
  56. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datasets/bids/__init__.py +0 -0
  57. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datasets/bids/datasets.py +0 -0
  58. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datasets/bids/format.py +0 -0
  59. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datasets/bids/hub.py +0 -0
  60. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datasets/bids/hub_format.py +0 -0
  61. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datasets/bids/hub_io.py +0 -0
  62. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datasets/bids/hub_validation.py +0 -0
  63. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datasets/bids/iterable.py +0 -0
  64. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datasets/chb_mit.py +0 -0
  65. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datasets/collate.py +0 -0
  66. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datasets/mne.py +0 -0
  67. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datasets/moabb.py +0 -0
  68. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datasets/nmt.py +0 -0
  69. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datasets/registry.py +0 -0
  70. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datasets/siena.py +0 -0
  71. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datasets/sleep_physio_challe_18.py +0 -0
  72. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datasets/sleep_physionet.py +0 -0
  73. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datasets/utils.py +0 -0
  74. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datasets/xy.py +0 -0
  75. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datautil/__init__.py +0 -0
  76. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datautil/channel_utils.py +0 -0
  77. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datautil/hub_formats.py +0 -0
  78. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datautil/serialization.py +0 -0
  79. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/datautil/util.py +0 -0
  80. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/eegneuralnet.py +0 -0
  81. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/functional/__init__.py +0 -0
  82. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/functional/_real_dft.py +0 -0
  83. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/functional/functions.py +0 -0
  84. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/functional/initialization.py +0 -0
  85. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/atcnet.py +0 -0
  86. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/attentionbasenet.py +0 -0
  87. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/attn_sleep.py +0 -0
  88. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/barista.py +0 -0
  89. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/biot.py +0 -0
  90. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/brainbert.py +0 -0
  91. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/brainmodule.py +0 -0
  92. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/brant.py +0 -0
  93. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/codebrain.py +0 -0
  94. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/config.py +0 -0
  95. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/contrawr.py +0 -0
  96. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/ctnet.py +0 -0
  97. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/dance.py +0 -0
  98. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/deepsleepnet.py +0 -0
  99. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/dgcnn.py +0 -0
  100. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/diver1.py +0 -0
  101. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/eegconformer.py +0 -0
  102. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/eeginception_erp.py +0 -0
  103. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/eeginception_mi.py +0 -0
  104. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/eegitnet.py +0 -0
  105. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/eegminer.py +0 -0
  106. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/eegnet.py +0 -0
  107. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/eegnex.py +0 -0
  108. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/eegsimpleconv.py +0 -0
  109. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/eegsym.py +0 -0
  110. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/eegtcnet.py +0 -0
  111. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/emg2qwerty.py +0 -0
  112. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/fbcnet.py +0 -0
  113. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/fblightconvnet.py +0 -0
  114. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/fbmsnet.py +0 -0
  115. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/hybrid.py +0 -0
  116. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/ifnet.py +0 -0
  117. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/interpolated.py +0 -0
  118. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/medformer.py +0 -0
  119. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/meta_neuromotor.py +0 -0
  120. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/mirepnet.py +0 -0
  121. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/mscformer.py +0 -0
  122. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/msvtnet.py +0 -0
  123. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/mvpformer.py +0 -0
  124. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/neuropose.py +0 -0
  125. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/patchedtransformer.py +0 -0
  126. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/reve.py +0 -0
  127. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/sccnet.py +0 -0
  128. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/sensingdynamics.py +0 -0
  129. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/sinc_shallow.py +0 -0
  130. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/sleep_stager_blanco_2020.py +0 -0
  131. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/sleep_stager_chambon_2018.py +0 -0
  132. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/sparcnet.py +0 -0
  133. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/sstdpn.py +0 -0
  134. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/steegformer.py +0 -0
  135. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/syncnet.py +0 -0
  136. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/tcformer.py +0 -0
  137. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/tcn.py +0 -0
  138. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/tidnet.py +0 -0
  139. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/tsinception.py +0 -0
  140. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/usleep.py +0 -0
  141. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/models/vemg2pose.py +0 -0
  142. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/modules/activation.py +0 -0
  143. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/modules/attention.py +0 -0
  144. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/modules/blocks.py +0 -0
  145. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/modules/dance_modules.py +0 -0
  146. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/modules/filter.py +0 -0
  147. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/modules/interpolation.py +0 -0
  148. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/modules/linear.py +0 -0
  149. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/modules/parametrization.py +0 -0
  150. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/modules/stats.py +0 -0
  151. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/modules/util.py +0 -0
  152. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/modules/wrapper.py +0 -0
  153. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/preprocessing/__init__.py +0 -0
  154. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/preprocessing/eegprep_preprocess.py +0 -0
  155. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/preprocessing/mne_preprocess.py +0 -0
  156. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/preprocessing/preprocess.py +0 -0
  157. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/preprocessing/util.py +0 -0
  158. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/preprocessing/windowers.py +0 -0
  159. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/samplers/__init__.py +0 -0
  160. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/samplers/base.py +0 -0
  161. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/samplers/ssl.py +0 -0
  162. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/training/__init__.py +0 -0
  163. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/training/callbacks.py +0 -0
  164. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/util.py +0 -0
  165. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/visualization/__init__.py +0 -0
  166. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/visualization/activations.py +0 -0
  167. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/visualization/attribution.py +0 -0
  168. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/visualization/confusion_matrices.py +0 -0
  169. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/visualization/frequency.py +0 -0
  170. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/visualization/metrics.py +0 -0
  171. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/visualization/sanity.py +0 -0
  172. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode/visualization/topology.py +0 -0
  173. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode.egg-info/dependency_links.txt +0 -0
  174. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/braindecode.egg-info/top_level.txt +0 -0
  175. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/docs/Makefile +0 -0
  176. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/docs/_templates/autosummary/class.rst +0 -0
  177. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/docs/_templates/autosummary/class_in_subdir.rst +0 -0
  178. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/docs/_templates/autosummary/function.rst +0 -0
  179. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/docs/_templates/autosummary/function_in_subdir.rst +0 -0
  180. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/docs/cite.rst +0 -0
  181. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/docs/help.rst +0 -0
  182. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/docs/index.rst +0 -0
  183. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/docs/install/install.rst +0 -0
  184. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/docs/install/install_pip.rst +0 -0
  185. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/docs/install/install_source.rst +0 -0
  186. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/docs/models/categorization/attention.rst +0 -0
  187. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/docs/models/categorization/channel.rst +0 -0
  188. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/docs/models/categorization/convolution.rst +0 -0
  189. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/docs/models/categorization/filterbank.rst +0 -0
  190. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/docs/models/categorization/gnn.rst +0 -0
  191. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/docs/models/categorization/interpretable.rst +0 -0
  192. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/docs/models/categorization/lbm.rst +0 -0
  193. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/docs/models/categorization/recurrent.rst +0 -0
  194. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/docs/models/categorization/spd.rst +0 -0
  195. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/docs/models/models.rst +0 -0
  196. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/docs/models/models_categorization.rst +0 -0
  197. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/docs/models/models_table.rst +0 -0
  198. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/docs/models/models_visualization.rst +0 -0
  199. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/docs/sg_execution_times.rst +0 -0
  200. {braindecode-1.8.1.dev168490289 → braindecode-1.8.1.dev169087728}/setup.cfg +0 -0
@@ -14,8 +14,7 @@ The following components are licensed under the Creative Commons Attribution-Non
14
14
  - `braindecode/models/eegminer.py`
15
15
  - `braindecode/models/meta_neuromotor.py`
16
16
  - `braindecode/models/brainmodule.py`
17
-
18
- As well as class later imported into the `braindecode.models.module` named as GeneralizedGaussianFilter.
17
+ - `braindecode/models/neurorvq.py`
19
18
 
20
19
  The `meta_neuromotor.py` file is a derivative of
21
20
  `facebookresearch/generic-neuromotor-interface`, released by Meta Platforms,
@@ -43,6 +42,17 @@ The following components are licensed under the MIT License:
43
42
  - `braindecode/models/tcformer.py`
44
43
  - `braindecode/models/ifnet.py`
45
44
  - `braindecode/models/mirepnet.py`
45
+ - `braindecode/models/popt.py`
46
+ - `braindecode/modules/popt_modules.py`
47
+ - `braindecode/models/brainomni.py`
48
+ - `braindecode/modules/quantization.py`
49
+ - `braindecode/models/seizure_transformer.py`
50
+ - `docs/_static/model/seizure_transformer_arch.png`
51
+
52
+ The `brainomni.py` file is a derivative of `OpenTSLab/BrainOmni` (MIT), whose
53
+ SEANet codec derives from Meta's `facebookresearch/encodec` (MIT). The
54
+ `quantization.py` module holds the residual vector quantization derived from
55
+ `lucidrains/vector-quantize-pytorch` (MIT) and the BrainOmni port.
46
56
 
47
57
  ### Apache-2.0 Licensed Files
48
58
 
@@ -51,6 +61,7 @@ The following components are licensed under the Apache License 2.0:
51
61
  - `braindecode/models/mvpformer.py`
52
62
  - `braindecode/models/zuna.py`
53
63
  - `braindecode/models/luna.py`
64
+ - `braindecode/models/mapa.py`
54
65
  - `braindecode/models/brant.py`
55
66
  - `braindecode/models/diver1.py`
56
67
  - `braindecode/models/mscformer.py`
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: braindecode
3
- Version: 1.8.1.dev168490289
3
+ Version: 1.8.1.dev169087728
4
4
  Summary: Deep learning software to decode EEG, ECG or MEG signals
5
5
  Author-email: Robin Tibor Schirrmeister <robintibor@gmail.com>, Bruno Aristimunha Pinto <b.aristimunha@gmail.com>, Alexandre Gramfort <agramfort@meta.com>
6
6
  Maintainer-email: Alexandre Gramfort <agramfort@meta.com>, Bruno Aristimunha Pinto <b.aristimunha@gmail.com>, Robin Tibor Schirrmeister <robintibor@gmail.com>
@@ -60,6 +60,8 @@ Provides-Extra: typing
60
60
  Requires-Dist: exca>=0.5.10; extra == "typing"
61
61
  Requires-Dist: numpydantic>=1.7; extra == "typing"
62
62
  Provides-Extra: docs
63
+ Requires-Dist: pytest<9.1; extra == "docs"
64
+ Requires-Dist: sphinx-markdown-builder==0.6.11; extra == "docs"
63
65
  Requires-Dist: sphinx_gallery>=0.17; extra == "docs"
64
66
  Requires-Dist: sphinx_rtd_theme; extra == "docs"
65
67
  Requires-Dist: sphinx-autodoc-typehints; extra == "docs"
@@ -207,10 +207,11 @@ class EEGClassifier(_EEGNeuralNet, NeuralNetClassifier):
207
207
 
208
208
  Returns
209
209
  -------
210
- trial_predictions : np.ndarray
210
+ trial_predictions : np.ndarray | list of np.ndarray
211
211
  3-dimensional array (n_trials x n_classes x n_predictions), where
212
212
  the number of predictions depend on the chosen window size and the
213
- receptive field of the network.
213
+ receptive field of the network. If trials have different lengths,
214
+ a list with one (n_classes x n_predictions) array per trial.
214
215
  trial_targets : np.ndarray
215
216
  Ground-truth targets from the dataset in a 2-dimensional array
216
217
  (n_trials x n_targets). Only returned when ``return_targets=True``.
@@ -815,7 +815,8 @@ def _get_header(*args, **kwargs):
815
815
  for paths_dict in [_TUH_EEG_PATHS, _TUH_EEG_ABNORMAL_PATHS, _TUH_EEG_EVENTS_PATHS]:
816
816
  for version_dict in paths_dict.values():
817
817
  all_paths.update(version_dict)
818
- return all_paths[args[0]]
818
+ # Mock keys use POSIX separators; pathlib emits backslashes on Windows.
819
+ return all_paths[os.fspath(args[0]).replace("\\", "/")]
819
820
 
820
821
 
821
822
  _TUH_EEG_PATHS = {
@@ -9,6 +9,7 @@ from .bendr import BENDR, InterpolatedBENDR
9
9
  from .biot import BIOT, InterpolatedBIOT
10
10
  from .brainbert import BrainBERT
11
11
  from .brainmodule import BrainModule
12
+ from .brainomni import BrainOmni, BrainTokenizer
12
13
  from .brant import Brant
13
14
  from .cbramod import CBraMod
14
15
  from .codebrain import CodeBrain
@@ -40,6 +41,7 @@ from .ifnet import IFNet
40
41
  from .interpolated import InterpolatedModel
41
42
  from .labram import InterpolatedLaBraM, Labram
42
43
  from .luna import LUNA
44
+ from .mapa import MAPA
43
45
  from .medformer import MEDFormer
44
46
  from .meta_neuromotor import MetaNeuromotorHand
45
47
  from .mirepnet import MIRepNet
@@ -47,9 +49,12 @@ from .mscformer import MSCFormer
47
49
  from .msvtnet import MSVTNet
48
50
  from .mvpformer import MVPFormer
49
51
  from .neuropose import NeuroPose
52
+ from .neurorvq import NeuroRVQ
50
53
  from .patchedtransformer import PBT
54
+ from .popt import PopulationTransformer
51
55
  from .reve import REVE
52
56
  from .sccnet import SCCNet
57
+ from .seizure_transformer import SeizureTransformer
53
58
  from .sensingdynamics import SensingDynamics
54
59
  from .shallow_fbcsp import ShallowFBCSPNet
55
60
  from .signal_jepa import (
@@ -95,6 +100,8 @@ __all__ = [
95
100
  "BIOT",
96
101
  "BENDR",
97
102
  "BrainBERT",
103
+ "BrainOmni",
104
+ "BrainTokenizer",
98
105
  "CBraMod",
99
106
  "CodeBrain",
100
107
  "ContraWR",
@@ -138,14 +145,18 @@ __all__ = [
138
145
  "LUNA",
139
146
  "extract_channel_locations_from_chs_info",
140
147
  "positions_from_chs_info",
148
+ "MAPA",
141
149
  "MEDFormer",
142
150
  "MIRepNet",
151
+ "NeuroRVQ",
143
152
  "MSCFormer",
144
153
  "MSVTNet",
145
154
  "MVPFormer",
146
155
  "PBT",
156
+ "PopulationTransformer",
147
157
  "REVE",
148
158
  "SCCNet",
159
+ "SeizureTransformer",
149
160
  "ShallowFBCSPNet",
150
161
  "SignalJEPA",
151
162
  "SignalJEPA_Contextual",
@@ -779,6 +779,22 @@ class EEGModuleMixin(_BaseHubMixin, metaclass=_BraindecodeDocstringMeta):
779
779
 
780
780
  if HAS_HF_HUB:
781
781
 
782
+ @classmethod
783
+ def from_pretrained(cls, *args, **kwargs):
784
+ # The Hub mixin fills omitted __init__ args from config.json; pin the
785
+ # derived geometry arg so it cannot clash with the caller's one
786
+ # (e.g. caller chs_info vs saved n_chans) in __init__'s checks.
787
+ if "chs_info" in kwargs and "n_chans" not in kwargs:
788
+ chs_info = kwargs["chs_info"]
789
+ kwargs["n_chans"] = None if chs_info is None else len(chs_info)
790
+ elif "n_chans" in kwargs and "chs_info" not in kwargs:
791
+ kwargs["chs_info"] = None
792
+ if ("n_times" in kwargs or "sfreq" in kwargs) and (
793
+ "input_window_seconds" not in kwargs
794
+ ):
795
+ kwargs["input_window_seconds"] = None
796
+ return super().from_pretrained(*args, **kwargs)
797
+
782
798
  @classmethod
783
799
  def _from_pretrained(
784
800
  cls,
@@ -11,6 +11,7 @@ from einops.layers.torch import Rearrange
11
11
  from torch import nn
12
12
 
13
13
  from braindecode.models.base import EEGModuleMixin
14
+ from braindecode.modules.channel_tokenizer import ChannelTokenizer
14
15
 
15
16
  # The 20 channels used to pre-train BENDR, in the order expected by the
16
17
  # `braindecode/braindecode-bendr` checkpoint. The first 19 entries are the
@@ -288,26 +289,25 @@ class BENDR(EEGModuleMixin, nn.Module):
288
289
  # Keep these parameters if needed later, otherwise they are captured by the mixin
289
290
  del n_outputs, n_chans, chs_info, n_times, input_window_seconds, sfreq
290
291
 
291
- # If the user supplies chs_info, require it to match BENDR_CHANNEL_ORDER
292
- # exactly (case-insensitive). Arbitrary channel sets should go through
293
- # InterpolatedBENDR — same pattern as Labram / InterpolatedLaBraM.
294
- # When chs_info is absent (the usual n_chans=20 path, incl.
295
- # from_pretrained), no check is performed.
292
+ # No chs_info (incl. from_pretrained) or the canonical order: no
293
+ # tokenizer, so released checkpoints stay bit-identical. Any other
294
+ # montage is projected onto the 20 canonical channels.
296
295
  try:
297
296
  _chs_info = self.chs_info
298
297
  except ValueError:
299
298
  _chs_info = None
299
+ self.channel_tokenizer = None
300
+ backbone_n_chans = self.n_chans
300
301
  if _chs_info is not None:
301
302
  user_names = [ch["ch_name"] for ch in _chs_info] # type: ignore[index]
302
303
  canonical = BENDR_CHANNEL_ORDER
303
304
  if [n.lower() for n in user_names] != [n.lower() for n in canonical]:
304
- raise ValueError(
305
- f"BENDR requires chs_info to match BENDR_CHANNEL_ORDER exactly "
306
- f"({len(canonical)} channels, specific order; last is 'SCALE'). "
307
- f"Got {len(user_names)} channel(s). For arbitrary channel sets, "
308
- f"use InterpolatedBENDR "
309
- f"(from braindecode.models import InterpolatedBENDR)."
305
+ self.channel_tokenizer = ChannelTokenizer(
306
+ strategy="fixed_order",
307
+ src_chs_info=_chs_info,
308
+ target_chs_info=_BENDR_TARGET_CHS_INFO,
310
309
  )
310
+ backbone_n_chans = len(_BENDR_TARGET_CHS_INFO)
311
311
 
312
312
  self.encoder_h = encoder_h
313
313
  self.contextualizer_hidden = contextualizer_hidden
@@ -315,7 +315,7 @@ class BENDR(EEGModuleMixin, nn.Module):
315
315
  self.encoder_only = encoder_only
316
316
 
317
317
  self.encoder = _ConvEncoderBENDR(
318
- in_features=self.n_chans,
318
+ in_features=backbone_n_chans,
319
319
  encoder_h=encoder_h,
320
320
  dropout=drop_prob,
321
321
  projection_head=projection_head,
@@ -361,6 +361,8 @@ class BENDR(EEGModuleMixin, nn.Module):
361
361
  self._build_head(n_outputs)
362
362
 
363
363
  def forward(self, x, return_features=False):
364
+ if self.channel_tokenizer is not None:
365
+ x = self.channel_tokenizer(x)
364
366
  encoded = self.encoder(x)
365
367
  # encoded: [batch_size, encoder_h, n_encoded_times]
366
368