braindecode 0.4.82__tar.gz → 0.4.84__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 (79) hide show
  1. {Braindecode-0.4.82 → Braindecode-0.4.84}/Braindecode.egg-info/PKG-INFO +1 -1
  2. {Braindecode-0.4.82 → Braindecode-0.4.84}/PKG-INFO +1 -1
  3. {Braindecode-0.4.82 → Braindecode-0.4.84}/braindecode/datautil/iterators.py +2 -2
  4. {Braindecode-0.4.82 → Braindecode-0.4.84}/braindecode/models/base.py +17 -7
  5. Braindecode-0.4.84/braindecode/version.py +1 -0
  6. {Braindecode-0.4.82 → Braindecode-0.4.84}/docs/notebooks/Cropped_Decoding.ipynb +321 -320
  7. {Braindecode-0.4.82 → Braindecode-0.4.84}/docs/notebooks/Trialwise_Decoding.ipynb +310 -310
  8. Braindecode-0.4.82/braindecode/version.py +0 -1
  9. {Braindecode-0.4.82 → Braindecode-0.4.84}/Braindecode.egg-info/SOURCES.txt +0 -0
  10. {Braindecode-0.4.82 → Braindecode-0.4.84}/Braindecode.egg-info/dependency_links.txt +0 -0
  11. {Braindecode-0.4.82 → Braindecode-0.4.84}/Braindecode.egg-info/not-zip-safe +0 -0
  12. {Braindecode-0.4.82 → Braindecode-0.4.84}/Braindecode.egg-info/requires.txt +0 -0
  13. {Braindecode-0.4.82 → Braindecode-0.4.84}/Braindecode.egg-info/top_level.txt +0 -0
  14. {Braindecode-0.4.82 → Braindecode-0.4.84}/LICENSE.txt +0 -0
  15. {Braindecode-0.4.82 → Braindecode-0.4.84}/MANIFEST.in +0 -0
  16. {Braindecode-0.4.82 → Braindecode-0.4.84}/README.rst +0 -0
  17. {Braindecode-0.4.82 → Braindecode-0.4.84}/braindecode/__init__.py +0 -0
  18. {Braindecode-0.4.82 → Braindecode-0.4.84}/braindecode/datasets/__init__.py +0 -0
  19. {Braindecode-0.4.82 → Braindecode-0.4.84}/braindecode/datasets/bbci.py +0 -0
  20. {Braindecode-0.4.82 → Braindecode-0.4.84}/braindecode/datasets/bcic_iv_2a.py +0 -0
  21. {Braindecode-0.4.82 → Braindecode-0.4.84}/braindecode/datasets/lazy_dataset.py +0 -0
  22. {Braindecode-0.4.82 → Braindecode-0.4.84}/braindecode/datasets/multiple.py +0 -0
  23. {Braindecode-0.4.82 → Braindecode-0.4.84}/braindecode/datasets/sensor_positions.py +0 -0
  24. {Braindecode-0.4.82 → Braindecode-0.4.84}/braindecode/datautil/__init__.py +0 -0
  25. {Braindecode-0.4.82 → Braindecode-0.4.84}/braindecode/datautil/lazy_iterators.py +0 -0
  26. {Braindecode-0.4.82 → Braindecode-0.4.84}/braindecode/datautil/signal_target.py +0 -0
  27. {Braindecode-0.4.82 → Braindecode-0.4.84}/braindecode/datautil/signalproc.py +0 -0
  28. {Braindecode-0.4.82 → Braindecode-0.4.84}/braindecode/datautil/splitters.py +0 -0
  29. {Braindecode-0.4.82 → Braindecode-0.4.84}/braindecode/datautil/trial_segment.py +0 -0
  30. {Braindecode-0.4.82 → Braindecode-0.4.84}/braindecode/datautil/util.py +0 -0
  31. {Braindecode-0.4.82 → Braindecode-0.4.84}/braindecode/experiments/__init__.py +0 -0
  32. {Braindecode-0.4.82 → Braindecode-0.4.84}/braindecode/experiments/experiment.py +0 -0
  33. {Braindecode-0.4.82 → Braindecode-0.4.84}/braindecode/experiments/loggers.py +0 -0
  34. {Braindecode-0.4.82 → Braindecode-0.4.84}/braindecode/experiments/monitors.py +0 -0
  35. {Braindecode-0.4.82 → Braindecode-0.4.84}/braindecode/experiments/stopcriteria.py +0 -0
  36. {Braindecode-0.4.82 → Braindecode-0.4.84}/braindecode/mne_ext/__init__.py +0 -0
  37. {Braindecode-0.4.82 → Braindecode-0.4.84}/braindecode/mne_ext/signalproc.py +0 -0
  38. {Braindecode-0.4.82 → Braindecode-0.4.84}/braindecode/models/__init__.py +0 -0
  39. {Braindecode-0.4.82 → Braindecode-0.4.84}/braindecode/models/deep4.py +0 -0
  40. {Braindecode-0.4.82 → Braindecode-0.4.84}/braindecode/models/eegnet.py +0 -0
  41. {Braindecode-0.4.82 → Braindecode-0.4.84}/braindecode/models/hybrid.py +0 -0
  42. {Braindecode-0.4.82 → Braindecode-0.4.84}/braindecode/models/shallow_fbcsp.py +0 -0
  43. {Braindecode-0.4.82 → Braindecode-0.4.84}/braindecode/models/util.py +0 -0
  44. {Braindecode-0.4.82 → Braindecode-0.4.84}/braindecode/torch_ext/__init__.py +0 -0
  45. {Braindecode-0.4.82 → Braindecode-0.4.84}/braindecode/torch_ext/constraints.py +0 -0
  46. {Braindecode-0.4.82 → Braindecode-0.4.84}/braindecode/torch_ext/functions.py +0 -0
  47. {Braindecode-0.4.82 → Braindecode-0.4.84}/braindecode/torch_ext/init.py +0 -0
  48. {Braindecode-0.4.82 → Braindecode-0.4.84}/braindecode/torch_ext/losses.py +0 -0
  49. {Braindecode-0.4.82 → Braindecode-0.4.84}/braindecode/torch_ext/modules.py +0 -0
  50. {Braindecode-0.4.82 → Braindecode-0.4.84}/braindecode/torch_ext/optimizers.py +0 -0
  51. {Braindecode-0.4.82 → Braindecode-0.4.84}/braindecode/torch_ext/schedulers.py +0 -0
  52. {Braindecode-0.4.82 → Braindecode-0.4.84}/braindecode/torch_ext/util.py +0 -0
  53. {Braindecode-0.4.82 → Braindecode-0.4.84}/braindecode/util.py +0 -0
  54. {Braindecode-0.4.82 → Braindecode-0.4.84}/braindecode/visualization/__init__.py +0 -0
  55. {Braindecode-0.4.82 → Braindecode-0.4.84}/braindecode/visualization/input_windows.py +0 -0
  56. {Braindecode-0.4.82 → Braindecode-0.4.84}/braindecode/visualization/perturbation.py +0 -0
  57. {Braindecode-0.4.82 → Braindecode-0.4.84}/braindecode/visualization/plot.py +0 -0
  58. {Braindecode-0.4.82 → Braindecode-0.4.84}/braindecode/visualization/sinfit.py +0 -0
  59. {Braindecode-0.4.82 → Braindecode-0.4.84}/docs/Makefile +0 -0
  60. {Braindecode-0.4.82 → Braindecode-0.4.84}/docs/conf.py +0 -0
  61. {Braindecode-0.4.82 → Braindecode-0.4.84}/docs/index.rst +0 -0
  62. {Braindecode-0.4.82 → Braindecode-0.4.84}/docs/notebooks/BBCI_Data.ipynb +0 -0
  63. {Braindecode-0.4.82 → Braindecode-0.4.84}/docs/notebooks/BBCI_Data_Start_Stop.ipynb +0 -0
  64. {Braindecode-0.4.82 → Braindecode-0.4.84}/docs/notebooks/BBCI_Data_Trialwise.ipynb +0 -0
  65. {Braindecode-0.4.82 → Braindecode-0.4.84}/docs/notebooks/Cropped_Manual_Training_Loop.ipynb +0 -0
  66. {Braindecode-0.4.82 → Braindecode-0.4.84}/docs/notebooks/Cropped_Trialwise_Explanation_Figures.ipynb +0 -0
  67. {Braindecode-0.4.82 → Braindecode-0.4.84}/docs/notebooks/Trialwise_Manual_Training_Loop.ipynb +0 -0
  68. {Braindecode-0.4.82 → Braindecode-0.4.84}/docs/notebooks/visualization/Perturbation.ipynb +0 -0
  69. {Braindecode-0.4.82 → Braindecode-0.4.84}/docs/source/braindecode.datasets.rst +0 -0
  70. {Braindecode-0.4.82 → Braindecode-0.4.84}/docs/source/braindecode.datautil.rst +0 -0
  71. {Braindecode-0.4.82 → Braindecode-0.4.84}/docs/source/braindecode.experiments.rst +0 -0
  72. {Braindecode-0.4.82 → Braindecode-0.4.84}/docs/source/braindecode.mne_ext.rst +0 -0
  73. {Braindecode-0.4.82 → Braindecode-0.4.84}/docs/source/braindecode.models.rst +0 -0
  74. {Braindecode-0.4.82 → Braindecode-0.4.84}/docs/source/braindecode.rst +0 -0
  75. {Braindecode-0.4.82 → Braindecode-0.4.84}/docs/source/braindecode.torch_ext.rst +0 -0
  76. {Braindecode-0.4.82 → Braindecode-0.4.84}/docs/source/braindecode.visualization.rst +0 -0
  77. {Braindecode-0.4.82 → Braindecode-0.4.84}/docs/source/modules.rst +0 -0
  78. {Braindecode-0.4.82 → Braindecode-0.4.84}/setup.cfg +0 -0
  79. {Braindecode-0.4.82 → Braindecode-0.4.84}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.1
2
2
  Name: Braindecode
3
- Version: 0.4.82
3
+ Version: 0.4.84
4
4
  Summary: A deep learning toolbox to decode raw time-domain EEG.
5
5
  Home-page: https://github.com/robintibor/braindecode
6
6
  Author: Robin Tibor Schirrmeister
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.1
2
2
  Name: Braindecode
3
- Version: 0.4.82
3
+ Version: 0.4.84
4
4
  Summary: A deep learning toolbox to decode raw time-domain EEG.
5
5
  Home-page: https://github.com/robintibor/braindecode
6
6
  Author: Robin Tibor Schirrmeister
@@ -73,7 +73,7 @@ class BalancedBatchSizeIterator(object):
73
73
  self.rng = RandomState(self.seed)
74
74
 
75
75
  def get_batches(self, dataset, shuffle):
76
- n_trials = dataset.X.shape[0]
76
+ n_trials = len(dataset.X)
77
77
  batches = get_balanced_batches(
78
78
  n_trials, batch_size=self.batch_size, rng=self.rng, shuffle=shuffle
79
79
  )
@@ -113,7 +113,7 @@ class ClassBalancedBatchSizeIterator(object):
113
113
  self.rng = RandomState(self.seed)
114
114
 
115
115
  def get_batches(self, dataset, shuffle):
116
- n_trials = dataset.X.shape[0]
116
+ n_trials = len(dataset.X)
117
117
  batches = get_balanced_batches(
118
118
  n_trials, batch_size=self.batch_size, rng=self.rng, shuffle=shuffle
119
119
  )
@@ -180,6 +180,8 @@ class BaseModel(object):
180
180
  "which is the number of timesteps that will be pushed through"
181
181
  "the network in a single pass."
182
182
  )
183
+
184
+ train_X = _ensure_float32(train_X)
183
185
  if self.cropped:
184
186
  self.network.eval()
185
187
  test_input = np_to_var(
@@ -236,7 +238,9 @@ class BaseModel(object):
236
238
  th.mean(outputs, dim=2), targets
237
239
  )
238
240
  if validation_data is not None:
239
- valid_set = SignalAndTarget(validation_data[0], validation_data[1])
241
+ valid_X = _ensure_float32(validation_data[0])
242
+ valid_y = validation_data[1]
243
+ valid_set = SignalAndTarget(valid_X, valid_y)
240
244
  else:
241
245
  valid_set = None
242
246
  test_set = None
@@ -286,6 +290,7 @@ class BaseModel(object):
286
290
  Dictionary with result metrics.
287
291
 
288
292
  """
293
+ X = _ensure_float32(X)
289
294
  stop_criterion = MaxEpochs(0)
290
295
  train_set = SignalAndTarget(X, y)
291
296
  model_constraint = None
@@ -351,9 +356,7 @@ class BaseModel(object):
351
356
  if individual_crops:
352
357
  assert self.cropped, "Cropped labels only for cropped decoding"
353
358
  outs_per_trial = self.predict_outs(
354
- X=X,
355
- threshold_for_binary_case=threshold_for_binary_case,
356
- individual_crops=individual_crops,
359
+ X=X, individual_crops=individual_crops
357
360
  )
358
361
 
359
362
  pred_labels = [np.argmax(o, axis=0) for o in outs_per_trial]
@@ -361,9 +364,7 @@ class BaseModel(object):
361
364
  pred_labels = np.array(pred_labels)
362
365
  return pred_labels
363
366
 
364
- def predict_outs(
365
- self, X, threshold_for_binary_case=None, individual_crops=False
366
- ):
367
+ def predict_outs(self, X, individual_crops=False):
367
368
  """
368
369
  Predict raw outputs of the network for given input.
369
370
 
@@ -383,6 +384,7 @@ class BaseModel(object):
383
384
  """
384
385
  if individual_crops:
385
386
  assert self.cropped, "Cropped labels only for cropped decoding"
387
+ X = _ensure_float32(X)
386
388
  all_preds = []
387
389
  with th.no_grad():
388
390
  dummy_y = np.ones(len(X), dtype=np.int64)
@@ -404,3 +406,11 @@ class BaseModel(object):
404
406
  else:
405
407
  outs_per_trial = np.concatenate(all_preds)
406
408
  return outs_per_trial
409
+
410
+
411
+ def _ensure_float32(X):
412
+ if hasattr(X, "astype"):
413
+ X = X.astype(np.float32, copy=False)
414
+ else:
415
+ X = [x.astype(np.float32, copy=False) for x in X]
416
+ return X
@@ -0,0 +1 @@
1
+ __version__ = "0.4.84"