braindecode 0.8.1__py3-none-any.whl → 1.1.0__py3-none-any.whl
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.
Potentially problematic release.
This version of braindecode might be problematic. Click here for more details.
- braindecode/__init__.py +1 -2
- braindecode/augmentation/__init__.py +39 -19
- braindecode/augmentation/base.py +25 -28
- braindecode/augmentation/functional.py +237 -100
- braindecode/augmentation/transforms.py +325 -158
- braindecode/classifier.py +26 -24
- braindecode/datasets/__init__.py +28 -10
- braindecode/datasets/base.py +220 -134
- braindecode/datasets/bbci.py +43 -52
- braindecode/datasets/bcicomp.py +47 -32
- braindecode/datasets/bids.py +245 -0
- braindecode/datasets/mne.py +45 -24
- braindecode/datasets/moabb.py +87 -27
- braindecode/datasets/nmt.py +311 -0
- braindecode/datasets/sleep_physio_challe_18.py +412 -0
- braindecode/datasets/sleep_physionet.py +43 -26
- braindecode/datasets/tuh.py +324 -140
- braindecode/datasets/xy.py +27 -12
- braindecode/datautil/__init__.py +37 -18
- braindecode/datautil/serialization.py +110 -72
- braindecode/eegneuralnet.py +63 -47
- braindecode/functional/__init__.py +22 -0
- braindecode/functional/functions.py +250 -0
- braindecode/functional/initialization.py +47 -0
- braindecode/models/__init__.py +84 -14
- braindecode/models/atcnet.py +193 -164
- braindecode/models/attentionbasenet.py +599 -0
- braindecode/models/base.py +86 -102
- braindecode/models/biot.py +504 -0
- braindecode/models/contrawr.py +317 -0
- braindecode/models/ctnet.py +536 -0
- braindecode/models/deep4.py +116 -77
- braindecode/models/deepsleepnet.py +149 -119
- braindecode/models/eegconformer.py +112 -173
- braindecode/models/eeginception_erp.py +109 -118
- braindecode/models/eeginception_mi.py +161 -97
- braindecode/models/eegitnet.py +215 -152
- braindecode/models/eegminer.py +254 -0
- braindecode/models/eegnet.py +228 -161
- braindecode/models/eegnex.py +247 -0
- braindecode/models/eegresnet.py +234 -152
- braindecode/models/eegsimpleconv.py +199 -0
- braindecode/models/eegtcnet.py +335 -0
- braindecode/models/fbcnet.py +221 -0
- braindecode/models/fblightconvnet.py +313 -0
- braindecode/models/fbmsnet.py +324 -0
- braindecode/models/hybrid.py +52 -71
- braindecode/models/ifnet.py +441 -0
- braindecode/models/labram.py +1186 -0
- braindecode/models/msvtnet.py +375 -0
- braindecode/models/sccnet.py +207 -0
- braindecode/models/shallow_fbcsp.py +50 -56
- braindecode/models/signal_jepa.py +1011 -0
- braindecode/models/sinc_shallow.py +337 -0
- braindecode/models/sleep_stager_blanco_2020.py +55 -46
- braindecode/models/sleep_stager_chambon_2018.py +54 -53
- braindecode/models/sleep_stager_eldele_2021.py +247 -141
- braindecode/models/sparcnet.py +424 -0
- braindecode/models/summary.csv +41 -0
- braindecode/models/syncnet.py +232 -0
- braindecode/models/tcn.py +158 -88
- braindecode/models/tidnet.py +280 -167
- braindecode/models/tsinception.py +283 -0
- braindecode/models/usleep.py +190 -177
- braindecode/models/util.py +109 -145
- braindecode/modules/__init__.py +84 -0
- braindecode/modules/activation.py +60 -0
- braindecode/modules/attention.py +757 -0
- braindecode/modules/blocks.py +108 -0
- braindecode/modules/convolution.py +274 -0
- braindecode/modules/filter.py +628 -0
- braindecode/modules/layers.py +131 -0
- braindecode/modules/linear.py +49 -0
- braindecode/modules/parametrization.py +38 -0
- braindecode/modules/stats.py +77 -0
- braindecode/modules/util.py +76 -0
- braindecode/modules/wrapper.py +73 -0
- braindecode/preprocessing/__init__.py +36 -11
- braindecode/preprocessing/mne_preprocess.py +13 -7
- braindecode/preprocessing/preprocess.py +139 -75
- braindecode/preprocessing/windowers.py +576 -187
- braindecode/regressor.py +23 -12
- braindecode/samplers/__init__.py +16 -8
- braindecode/samplers/base.py +146 -32
- braindecode/samplers/ssl.py +162 -17
- braindecode/training/__init__.py +18 -10
- braindecode/training/callbacks.py +2 -4
- braindecode/training/losses.py +3 -8
- braindecode/training/scoring.py +76 -68
- braindecode/util.py +55 -59
- braindecode/version.py +1 -1
- braindecode/visualization/__init__.py +2 -3
- braindecode/visualization/confusion_matrices.py +117 -73
- braindecode/visualization/gradients.py +14 -10
- {braindecode-0.8.1.dist-info → braindecode-1.1.0.dist-info}/METADATA +42 -58
- braindecode-1.1.0.dist-info/RECORD +101 -0
- {braindecode-0.8.1.dist-info → braindecode-1.1.0.dist-info}/WHEEL +1 -1
- {braindecode-0.8.1.dist-info → braindecode-1.1.0.dist-info/licenses}/LICENSE.txt +1 -1
- braindecode-1.1.0.dist-info/licenses/NOTICE.txt +20 -0
- braindecode/datautil/mne.py +0 -9
- braindecode/datautil/preprocess.py +0 -12
- braindecode/datautil/windowers.py +0 -6
- braindecode/datautil/xy.py +0 -9
- braindecode/models/eeginception.py +0 -317
- braindecode/models/functions.py +0 -47
- braindecode/models/modules.py +0 -358
- braindecode-0.8.1.dist-info/RECORD +0 -68
- {braindecode-0.8.1.dist-info → braindecode-1.1.0.dist-info}/top_level.txt +0 -0
|
@@ -2,22 +2,27 @@
|
|
|
2
2
|
#
|
|
3
3
|
# License: BSD (3-clause)
|
|
4
4
|
|
|
5
|
-
import numpy as np
|
|
6
5
|
import matplotlib.pyplot as plt
|
|
6
|
+
import numpy as np
|
|
7
7
|
from matplotlib import cm
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
def plot_confusion_matrix(
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
10
|
+
def plot_confusion_matrix(
|
|
11
|
+
confusion_mat,
|
|
12
|
+
class_names=None,
|
|
13
|
+
figsize=None,
|
|
14
|
+
colormap=cm.bwr,
|
|
15
|
+
textcolor="black",
|
|
16
|
+
vmin=None,
|
|
17
|
+
vmax=None,
|
|
18
|
+
fontweight="normal",
|
|
19
|
+
rotate_row_labels=90,
|
|
20
|
+
rotate_col_labels=0,
|
|
21
|
+
with_f1_score=False,
|
|
22
|
+
norm_axes=(0, 1),
|
|
23
|
+
rotate_precision=False,
|
|
24
|
+
class_names_fontsize=12,
|
|
25
|
+
):
|
|
21
26
|
"""
|
|
22
27
|
|
|
23
28
|
Generates a confusion matrix with additional precision and sensitivity metrics as in [1]_.
|
|
@@ -68,8 +73,9 @@ def plot_confusion_matrix(confusion_mat,
|
|
|
68
73
|
class_names = [str(i_class + 1) for i_class in range(n_classes)]
|
|
69
74
|
|
|
70
75
|
# norm by all targets
|
|
71
|
-
normed_conf_mat = confusion_mat / np.float32(
|
|
72
|
-
|
|
76
|
+
normed_conf_mat = confusion_mat / np.float32(
|
|
77
|
+
np.sum(confusion_mat, axis=norm_axes, keepdims=True)
|
|
78
|
+
)
|
|
73
79
|
|
|
74
80
|
fig = plt.figure(figsize=figsize)
|
|
75
81
|
plt.clf()
|
|
@@ -83,13 +89,20 @@ def plot_confusion_matrix(confusion_mat,
|
|
|
83
89
|
# see http://stackoverflow.com/a/31397438/1469195
|
|
84
90
|
# brighten so that black text remains readable
|
|
85
91
|
# used alpha=0.6 before
|
|
86
|
-
def _brighten(
|
|
92
|
+
def _brighten(
|
|
93
|
+
x,
|
|
94
|
+
):
|
|
87
95
|
brightened_x = 1 - ((1 - np.array(x)) * 0.4)
|
|
88
96
|
return brightened_x
|
|
89
97
|
|
|
90
98
|
brightened_cmap = _cmap_map(_brighten, colormap) # colormap #
|
|
91
|
-
ax.imshow(
|
|
92
|
-
|
|
99
|
+
ax.imshow(
|
|
100
|
+
np.array(normed_conf_mat),
|
|
101
|
+
cmap=brightened_cmap,
|
|
102
|
+
interpolation="nearest",
|
|
103
|
+
vmin=vmin,
|
|
104
|
+
vmax=vmax,
|
|
105
|
+
)
|
|
93
106
|
|
|
94
107
|
# make space for precision and sensitivity
|
|
95
108
|
plt.xlim(-0.5, normed_conf_mat.shape[0] + 0.5)
|
|
@@ -99,42 +112,48 @@ def plot_confusion_matrix(confusion_mat,
|
|
|
99
112
|
for x in range(width):
|
|
100
113
|
for y in range(height):
|
|
101
114
|
if x == y:
|
|
102
|
-
this_font_weight =
|
|
115
|
+
this_font_weight = "bold"
|
|
103
116
|
else:
|
|
104
117
|
this_font_weight = fontweight
|
|
105
118
|
annotate_str = "{:d}".format(confusion_mat[x][y])
|
|
106
119
|
annotate_str += "\n"
|
|
107
|
-
ax.annotate(
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
120
|
+
ax.annotate(
|
|
121
|
+
annotate_str.format(confusion_mat[x][y]),
|
|
122
|
+
xy=(y, x),
|
|
123
|
+
horizontalalignment="center",
|
|
124
|
+
verticalalignment="center",
|
|
125
|
+
fontsize=12,
|
|
126
|
+
color=textcolor,
|
|
127
|
+
fontweight=this_font_weight,
|
|
128
|
+
)
|
|
113
129
|
if x != y or (not with_f1_score):
|
|
114
130
|
ax.annotate(
|
|
115
|
-
"\n\n{:4.1f}%".format(
|
|
116
|
-
normed_conf_mat[x][y] * 100),
|
|
131
|
+
"\n\n{:4.1f}%".format(normed_conf_mat[x][y] * 100),
|
|
117
132
|
xy=(y, x),
|
|
118
|
-
horizontalalignment=
|
|
119
|
-
verticalalignment=
|
|
133
|
+
horizontalalignment="center",
|
|
134
|
+
verticalalignment="center",
|
|
135
|
+
fontsize=10,
|
|
120
136
|
color=textcolor,
|
|
121
|
-
fontweight=this_font_weight
|
|
137
|
+
fontweight=this_font_weight,
|
|
138
|
+
)
|
|
122
139
|
else:
|
|
123
140
|
assert x == y
|
|
124
|
-
precision = confusion_mat[x][x] / float(np.sum(
|
|
125
|
-
|
|
126
|
-
sensitivity = confusion_mat[x][x] / float(np.sum(
|
|
127
|
-
confusion_mat[:, y]))
|
|
141
|
+
precision = confusion_mat[x][x] / float(np.sum(confusion_mat[x, :]))
|
|
142
|
+
sensitivity = confusion_mat[x][x] / float(np.sum(confusion_mat[:, y]))
|
|
128
143
|
f1_score = 2 * precision * sensitivity / (precision + sensitivity)
|
|
129
144
|
|
|
130
|
-
ax.annotate(
|
|
131
|
-
|
|
132
|
-
|
|
145
|
+
ax.annotate(
|
|
146
|
+
"\n{:4.1f}%\n{:4.1f}% (F)".format(
|
|
147
|
+
(confusion_mat[x][y] / float(np.sum(confusion_mat))) * 100,
|
|
148
|
+
f1_score * 100,
|
|
149
|
+
),
|
|
133
150
|
xy=(y, x + 0.1),
|
|
134
|
-
horizontalalignment=
|
|
135
|
-
verticalalignment=
|
|
151
|
+
horizontalalignment="center",
|
|
152
|
+
verticalalignment="center",
|
|
153
|
+
fontsize=10,
|
|
136
154
|
color=textcolor,
|
|
137
|
-
fontweight=this_font_weight
|
|
155
|
+
fontweight=this_font_weight,
|
|
156
|
+
)
|
|
138
157
|
|
|
139
158
|
# Add values for target correctness etc.
|
|
140
159
|
for x in range(width):
|
|
@@ -145,10 +164,13 @@ def plot_confusion_matrix(confusion_mat,
|
|
|
145
164
|
correctness = confusion_mat[x][x] / float(np.sum(confusion_mat[x, :]))
|
|
146
165
|
annotate_str = ""
|
|
147
166
|
annotate_str += "\n{:5.2f}%".format(correctness * 100)
|
|
148
|
-
ax.annotate(
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
167
|
+
ax.annotate(
|
|
168
|
+
annotate_str,
|
|
169
|
+
xy=(y, x),
|
|
170
|
+
horizontalalignment="center",
|
|
171
|
+
verticalalignment="center",
|
|
172
|
+
fontsize=12,
|
|
173
|
+
)
|
|
152
174
|
|
|
153
175
|
for y in range(height):
|
|
154
176
|
x = len(confusion_mat)
|
|
@@ -158,47 +180,68 @@ def plot_confusion_matrix(confusion_mat,
|
|
|
158
180
|
correctness = confusion_mat[y][y] / float(np.sum(confusion_mat[:, y]))
|
|
159
181
|
annotate_str = ""
|
|
160
182
|
annotate_str += "\n{:5.2f}%".format(correctness * 100)
|
|
161
|
-
ax.annotate(
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
183
|
+
ax.annotate(
|
|
184
|
+
annotate_str,
|
|
185
|
+
xy=(y, x),
|
|
186
|
+
horizontalalignment="center",
|
|
187
|
+
verticalalignment="center",
|
|
188
|
+
fontsize=12,
|
|
189
|
+
)
|
|
190
|
+
|
|
191
|
+
overall_correctness = np.sum(np.diag(confusion_mat)) / np.sum(confusion_mat).astype(
|
|
192
|
+
float
|
|
193
|
+
)
|
|
194
|
+
ax.annotate(
|
|
195
|
+
"{:5.2f}%".format(overall_correctness * 100),
|
|
196
|
+
xy=(len(confusion_mat), len(confusion_mat)),
|
|
197
|
+
horizontalalignment="center",
|
|
198
|
+
verticalalignment="center",
|
|
199
|
+
fontsize=12,
|
|
200
|
+
fontweight="bold",
|
|
201
|
+
)
|
|
202
|
+
|
|
203
|
+
plt.xticks(
|
|
204
|
+
range(width),
|
|
205
|
+
class_names,
|
|
206
|
+
fontsize=class_names_fontsize,
|
|
207
|
+
rotation=rotate_col_labels,
|
|
208
|
+
)
|
|
209
|
+
plt.yticks(
|
|
210
|
+
np.arange(0, height),
|
|
211
|
+
class_names,
|
|
212
|
+
va="center",
|
|
213
|
+
fontsize=class_names_fontsize,
|
|
214
|
+
rotation=rotate_row_labels,
|
|
215
|
+
)
|
|
178
216
|
plt.grid(False)
|
|
179
|
-
plt.ylabel(
|
|
180
|
-
plt.xlabel(
|
|
217
|
+
plt.ylabel("Predictions", fontsize=15)
|
|
218
|
+
plt.xlabel("Targets", fontsize=15)
|
|
181
219
|
|
|
182
220
|
# n classes is also shape of matrix/size
|
|
183
|
-
ax.text(-1.2, n_classes + 0.2, "Recall", ha=
|
|
184
|
-
fontsize=13)
|
|
221
|
+
ax.text(-1.2, n_classes + 0.2, "Recall", ha="center", va="center", fontsize=13)
|
|
185
222
|
if rotate_precision:
|
|
186
223
|
rotation = 90
|
|
187
224
|
x_pos = -1.1
|
|
188
|
-
va =
|
|
225
|
+
va = "center"
|
|
189
226
|
else:
|
|
190
227
|
rotation = 0
|
|
191
228
|
x_pos = -0.8
|
|
192
|
-
va =
|
|
193
|
-
ax.text(
|
|
194
|
-
|
|
195
|
-
|
|
229
|
+
va = "top"
|
|
230
|
+
ax.text(
|
|
231
|
+
n_classes,
|
|
232
|
+
x_pos,
|
|
233
|
+
"Precision",
|
|
234
|
+
ha="center",
|
|
235
|
+
va=va,
|
|
236
|
+
rotation=rotation, # 270,
|
|
237
|
+
fontsize=13,
|
|
238
|
+
)
|
|
196
239
|
|
|
197
240
|
return fig
|
|
198
241
|
|
|
199
242
|
|
|
200
243
|
# see http://stackoverflow.com/a/31397438/1469195
|
|
201
|
-
def _cmap_map(function, cmap, name=
|
|
244
|
+
def _cmap_map(function, cmap, name="colormap_mod", N=None, gamma=None):
|
|
202
245
|
"""
|
|
203
246
|
Modify a colormap using `function` which must operate on 3-element
|
|
204
247
|
arrays of [r, g, b] values.
|
|
@@ -211,6 +254,7 @@ def _cmap_map(function, cmap, name='colormap_mod', N=None, gamma=None):
|
|
|
211
254
|
loaded using plt.get_cmap(name).
|
|
212
255
|
"""
|
|
213
256
|
from matplotlib.colors import LinearSegmentedColormap as lsc
|
|
257
|
+
|
|
214
258
|
if N is None:
|
|
215
259
|
N = cmap.N
|
|
216
260
|
if gamma is None:
|
|
@@ -225,7 +269,7 @@ def _cmap_map(function, cmap, name='colormap_mod', N=None, gamma=None):
|
|
|
225
269
|
y0 = cmap(step_list)[:, :3]
|
|
226
270
|
y1 = y0.copy()[:, :3]
|
|
227
271
|
# Go back to catch the discontinuities, and place them into y0, y1
|
|
228
|
-
for iclr, key in enumerate([
|
|
272
|
+
for iclr, key in enumerate(["red", "green", "blue"]):
|
|
229
273
|
for istp, step in enumerate(step_list):
|
|
230
274
|
try:
|
|
231
275
|
ind = step_dict[key].index(step)
|
|
@@ -238,8 +282,8 @@ def _cmap_map(function, cmap, name='colormap_mod', N=None, gamma=None):
|
|
|
238
282
|
y0 = np.array(list(map(function, y0)))
|
|
239
283
|
y1 = np.array(list(map(function, y1)))
|
|
240
284
|
# Build the new colormap (overwriting step_dict):
|
|
241
|
-
for iclr, clr in enumerate([
|
|
285
|
+
for iclr, clr in enumerate(["red", "green", "blue"]):
|
|
242
286
|
step_dict[clr] = np.vstack((step_list, y0[:, iclr], y1[:, iclr])).T
|
|
243
287
|
# Remove alpha, otherwise crashes...
|
|
244
|
-
step_dict.pop(
|
|
288
|
+
step_dict.pop("alpha", None)
|
|
245
289
|
return lsc(name, step_dict, N=N, gamma=gamma)
|
|
@@ -3,16 +3,20 @@
|
|
|
3
3
|
# License: BSD (3-clause)
|
|
4
4
|
|
|
5
5
|
import numpy as np
|
|
6
|
-
from skorch.utils import to_numpy, to_tensor
|
|
7
6
|
import torch
|
|
7
|
+
from skorch.utils import to_numpy, to_tensor
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
def compute_amplitude_gradients(model, dataset, batch_size):
|
|
11
|
-
loader = torch.utils.data.DataLoader(
|
|
12
|
-
|
|
11
|
+
loader = torch.utils.data.DataLoader(
|
|
12
|
+
dataset, batch_size=batch_size, drop_last=False, shuffle=False
|
|
13
|
+
)
|
|
13
14
|
all_amp_grads = []
|
|
14
15
|
for batch_X, _, _ in loader:
|
|
15
|
-
this_amp_grads = compute_amplitude_gradients_for_X(
|
|
16
|
+
this_amp_grads = compute_amplitude_gradients_for_X(
|
|
17
|
+
model,
|
|
18
|
+
batch_X,
|
|
19
|
+
)
|
|
16
20
|
all_amp_grads.append(this_amp_grads)
|
|
17
21
|
all_amp_grads = np.concatenate(all_amp_grads, axis=1)
|
|
18
22
|
return all_amp_grads
|
|
@@ -27,22 +31,22 @@ def compute_amplitude_gradients_for_X(model, X):
|
|
|
27
31
|
phases_th = to_tensor(phases.astype(np.float32), device=device).requires_grad_(True)
|
|
28
32
|
|
|
29
33
|
fft_coefs = amps_th.unsqueeze(-1) * torch.stack(
|
|
30
|
-
(torch.cos(phases_th), torch.sin(phases_th)), dim=-1
|
|
34
|
+
(torch.cos(phases_th), torch.sin(phases_th)), dim=-1
|
|
35
|
+
)
|
|
31
36
|
fft_coefs = fft_coefs.squeeze(3)
|
|
32
37
|
|
|
33
38
|
try:
|
|
34
39
|
complex_fft_coefs = torch.view_as_complex(fft_coefs)
|
|
35
|
-
iffted = torch.fft.irfft(
|
|
36
|
-
complex_fft_coefs, n=X.shape[2], dim=2)
|
|
40
|
+
iffted = torch.fft.irfft(complex_fft_coefs, n=X.shape[2], dim=2)
|
|
37
41
|
except AttributeError:
|
|
38
42
|
iffted = torch.irfft( # Deprecated since 1.7
|
|
39
|
-
fft_coefs, signal_ndim=1, signal_sizes=(X.shape[2],)
|
|
43
|
+
fft_coefs, signal_ndim=1, signal_sizes=(X.shape[2],)
|
|
44
|
+
)
|
|
40
45
|
|
|
41
46
|
outs = model(iffted)
|
|
42
47
|
|
|
43
48
|
n_filters = outs.shape[1]
|
|
44
|
-
amp_grads_per_filter = np.full((n_filters,) + ffted.shape,
|
|
45
|
-
np.nan, dtype=np.float32)
|
|
49
|
+
amp_grads_per_filter = np.full((n_filters,) + ffted.shape, np.nan, dtype=np.float32)
|
|
46
50
|
for i_filter in range(n_filters):
|
|
47
51
|
mean_out = torch.mean(outs[:, i_filter])
|
|
48
52
|
mean_out.backward(retain_graph=True)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: braindecode
|
|
3
|
-
Version:
|
|
3
|
+
Version: 1.1.0
|
|
4
4
|
Summary: Deep learning software to decode EEG, ECG or MEG signals
|
|
5
5
|
Author-email: Robin Tibor Schirrmeister <robintibor@gmail.com>
|
|
6
6
|
Maintainer-email: Alexandre Gramfort <agramfort@meta.com>, Bruno Aristimunha Pinto <b.aristimunha@gmail.com>, Robin Tibor Schirrmeister <robintibor@gmail.com>
|
|
@@ -15,44 +15,52 @@ Classifier: Intended Audience :: Science/Research
|
|
|
15
15
|
Classifier: Topic :: Software Development :: Build Tools
|
|
16
16
|
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
17
17
|
Classifier: License :: OSI Approved :: BSD License
|
|
18
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
19
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
20
18
|
Classifier: Programming Language :: Python :: 3.10
|
|
21
19
|
Classifier: Programming Language :: Python :: 3.11
|
|
22
|
-
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
21
|
+
Requires-Python: >3.9
|
|
23
22
|
Description-Content-Type: text/x-rst
|
|
24
23
|
License-File: LICENSE.txt
|
|
25
|
-
|
|
24
|
+
License-File: NOTICE.txt
|
|
25
|
+
Requires-Dist: mne>=1.10.0
|
|
26
|
+
Requires-Dist: mne_bids>=0.16
|
|
26
27
|
Requires-Dist: numpy
|
|
27
28
|
Requires-Dist: pandas
|
|
28
29
|
Requires-Dist: scipy
|
|
29
30
|
Requires-Dist: matplotlib
|
|
30
31
|
Requires-Dist: h5py
|
|
31
|
-
Requires-Dist: skorch
|
|
32
|
-
Requires-Dist: torch
|
|
32
|
+
Requires-Dist: skorch~=0.14.0
|
|
33
|
+
Requires-Dist: torch~=2.0
|
|
34
|
+
Requires-Dist: torchaudio~=2.0
|
|
33
35
|
Requires-Dist: einops
|
|
34
36
|
Requires-Dist: joblib
|
|
35
|
-
Requires-Dist: torchinfo
|
|
36
|
-
Requires-Dist:
|
|
37
|
-
|
|
38
|
-
Requires-Dist:
|
|
39
|
-
Requires-Dist:
|
|
40
|
-
Requires-Dist: pydata-sphinx-theme ; extra == 'docs'
|
|
41
|
-
Requires-Dist: numpydoc ; extra == 'docs'
|
|
42
|
-
Requires-Dist: memory-profiler ; extra == 'docs'
|
|
43
|
-
Requires-Dist: pillow ; extra == 'docs'
|
|
44
|
-
Requires-Dist: ipython ; extra == 'docs'
|
|
45
|
-
Requires-Dist: sphinx-design ; extra == 'docs'
|
|
46
|
-
Requires-Dist: lightning ; extra == 'docs'
|
|
47
|
-
Requires-Dist: seaborn ; extra == 'docs'
|
|
48
|
-
Requires-Dist: pre-commit ; extra == 'docs'
|
|
37
|
+
Requires-Dist: torchinfo~=1.8
|
|
38
|
+
Requires-Dist: wfdb
|
|
39
|
+
Requires-Dist: h5py
|
|
40
|
+
Requires-Dist: linear_attention_transformer
|
|
41
|
+
Requires-Dist: docstring_inheritance
|
|
49
42
|
Provides-Extra: moabb
|
|
50
|
-
Requires-Dist: moabb
|
|
43
|
+
Requires-Dist: moabb>=1.2.0; extra == "moabb"
|
|
51
44
|
Provides-Extra: tests
|
|
52
|
-
Requires-Dist: pytest
|
|
53
|
-
Requires-Dist: pytest-cov
|
|
54
|
-
Requires-Dist: codecov
|
|
55
|
-
Requires-Dist:
|
|
45
|
+
Requires-Dist: pytest; extra == "tests"
|
|
46
|
+
Requires-Dist: pytest-cov; extra == "tests"
|
|
47
|
+
Requires-Dist: codecov; extra == "tests"
|
|
48
|
+
Requires-Dist: pytest_cases; extra == "tests"
|
|
49
|
+
Requires-Dist: mypy; extra == "tests"
|
|
50
|
+
Provides-Extra: docs
|
|
51
|
+
Requires-Dist: sphinx_gallery; extra == "docs"
|
|
52
|
+
Requires-Dist: sphinx_rtd_theme; extra == "docs"
|
|
53
|
+
Requires-Dist: pydata_sphinx_theme; extra == "docs"
|
|
54
|
+
Requires-Dist: numpydoc; extra == "docs"
|
|
55
|
+
Requires-Dist: memory_profiler; extra == "docs"
|
|
56
|
+
Requires-Dist: pillow; extra == "docs"
|
|
57
|
+
Requires-Dist: ipython; extra == "docs"
|
|
58
|
+
Requires-Dist: sphinx_design; extra == "docs"
|
|
59
|
+
Requires-Dist: lightning; extra == "docs"
|
|
60
|
+
Requires-Dist: seaborn; extra == "docs"
|
|
61
|
+
Requires-Dist: pre-commit; extra == "docs"
|
|
62
|
+
Requires-Dist: openneuro-py; extra == "docs"
|
|
63
|
+
Dynamic: license-file
|
|
56
64
|
|
|
57
65
|
.. image:: https://badges.gitter.im/braindecodechat/community.svg
|
|
58
66
|
:alt: Join the chat at https://gitter.im/braindecodechat/community
|
|
@@ -166,37 +174,13 @@ as well as the `MNE-Python <https://mne.tools>`_ software that is used by braind
|
|
|
166
174
|
Licensing
|
|
167
175
|
^^^^^^^^^
|
|
168
176
|
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
This software is OSI Certified Open Source Software.
|
|
172
|
-
OSI Certified is a certification mark of the Open Source Initiative.
|
|
173
|
-
|
|
174
|
-
Copyright (c) 2011-2022, authors of Braindecode.
|
|
175
|
-
All rights reserved.
|
|
176
|
-
|
|
177
|
-
Redistribution and use in source and binary forms, with or without
|
|
178
|
-
modification, are permitted provided that the following conditions are met:
|
|
179
|
-
|
|
180
|
-
* Redistributions of source code must retain the above copyright notice,
|
|
181
|
-
this list of conditions and the following disclaimer.
|
|
177
|
+
This project is primarily licensed under the BSD-3-Clause License.
|
|
182
178
|
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
and/or other materials provided with the distribution.
|
|
179
|
+
Additional Components
|
|
180
|
+
~~~~~~~~~~~~~~~~~~~~~
|
|
186
181
|
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
this software without specific prior written permission.
|
|
182
|
+
Some components within this repository are licensed under the Creative Commons Attribution-NonCommercial 4.0 International
|
|
183
|
+
License.
|
|
190
184
|
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
limited to, the implied warranties of merchantability and fitness for
|
|
194
|
-
a particular purpose are disclaimed. In no event shall the copyright
|
|
195
|
-
owner or contributors be liable for any direct, indirect, incidental,
|
|
196
|
-
special, exemplary, or consequential damages (including, but not
|
|
197
|
-
limited to, procurement of substitute goods or services; loss of use,
|
|
198
|
-
data, or profits; or business interruption) however caused and on any
|
|
199
|
-
theory of liability, whether in contract, strict liability, or tort
|
|
200
|
-
(including negligence or otherwise) arising in any way out of the use
|
|
201
|
-
of this software, even if advised of the possibility of such
|
|
202
|
-
damage.**
|
|
185
|
+
Please refer to the ``LICENSE`` and ``NOTICE`` files for more detailed
|
|
186
|
+
information.
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
braindecode/__init__.py,sha256=Ac3LEEyIHWFY_fFh3eAY1GZUqXcUxVSJwOSUCwGEDvQ,182
|
|
2
|
+
braindecode/classifier.py,sha256=k9vSCtfQbld0YVleDi5rrrmk6k_k5JYEPPBYcNxYjZ8,9807
|
|
3
|
+
braindecode/eegneuralnet.py,sha256=dz8k_-2jV7WqkaX4bQG-dmr-vRT7ZtOwJqomXyC9PTw,15287
|
|
4
|
+
braindecode/regressor.py,sha256=VLfrpiXklwI4onkwue3QmzlBWcvspu0tlrLo9RT1Oiw,9375
|
|
5
|
+
braindecode/util.py,sha256=J-tBcDJNlMTIFW2mfOy6Ko0nsgdP4obRoEVDeg2rFH0,12686
|
|
6
|
+
braindecode/version.py,sha256=LGVQyDsWifdACo7qztwb8RWWHds1E7uQ-ZqD8SAjyw4,22
|
|
7
|
+
braindecode/augmentation/__init__.py,sha256=LG7ONqCufYAF9NZt8POIp10lYXb8iSueYkF-CWGK2Ls,1001
|
|
8
|
+
braindecode/augmentation/base.py,sha256=gg7wYsVfa9jfqBddtE03B5ZrPHFFmPl2sa3LOrRnGfo,7325
|
|
9
|
+
braindecode/augmentation/functional.py,sha256=ygkMNEFHaUdRQfk7meMML19FnM406Uf34h-ztKXdJwM,37978
|
|
10
|
+
braindecode/augmentation/transforms.py,sha256=QgLoX6MFaiBH8WoVBgB8eY4x9jZNPMvj20zlwUM8AOs,44245
|
|
11
|
+
braindecode/datasets/__init__.py,sha256=CTl8ucbG948ZJqntEBELb-Pn8GsZLfFZLgVcB-fhw4k,891
|
|
12
|
+
braindecode/datasets/base.py,sha256=ED8RQWusMyWf0T7b_HXwouR2Ax47qppEc506AlSzBt0,32155
|
|
13
|
+
braindecode/datasets/bbci.py,sha256=BC9o1thEyYBREAo930O7zZz3xZB-l4Odt5j8E_1huXI,19277
|
|
14
|
+
braindecode/datasets/bcicomp.py,sha256=ER_XmqxhpoO2FWELMesQXQ40OTe7BXoy7nYDSiZG9kE,7556
|
|
15
|
+
braindecode/datasets/bids.py,sha256=4asq1HyQHgJjwW7w-GMlvTVQhi-hR2HWLJ8Z__UrUS4,8846
|
|
16
|
+
braindecode/datasets/mne.py,sha256=Dg6RZAAwd8TVGrvLOPF5B_JrbyGUWg52vWmn6fLMOQM,6135
|
|
17
|
+
braindecode/datasets/moabb.py,sha256=JmBcFV7QJT8GCgLNNKWgxJVnEVnO5wd9U_uiIqTIxDM,7091
|
|
18
|
+
braindecode/datasets/nmt.py,sha256=E4T8OYBEwWRSjh7VFzmyxaZbf5ufFVEBYYmQEd1ghUU,10430
|
|
19
|
+
braindecode/datasets/sleep_physio_challe_18.py,sha256=KTvUtuarOOYu6PHN6H1vcy4W9xilwtZE08n7JSrk8Cs,15414
|
|
20
|
+
braindecode/datasets/sleep_physionet.py,sha256=jieRx6u-MQ4jn_5Zox_pVV8WjBwXKLv9uq4GXRAZ_58,4087
|
|
21
|
+
braindecode/datasets/tuh.py,sha256=iG1hOtdevzKGEVpeuRFDBOnsW_rWa5zEmMFJfYR1hqg,22867
|
|
22
|
+
braindecode/datasets/xy.py,sha256=xT-nS_5jpuVKJ0SGqc7Ia0FVpqj86UfuzcYQdEGZdp0,2986
|
|
23
|
+
braindecode/datautil/__init__.py,sha256=GB9xOudUhJGDyG08PBrnotw6HnWoWIXAHfRNFO-pxSk,1797
|
|
24
|
+
braindecode/datautil/serialization.py,sha256=gLIm9bcuR-XfVdII-RTplUWFRms9qVvVZ0-M6gTucNc,13028
|
|
25
|
+
braindecode/datautil/util.py,sha256=ZfDoxLieKsgI8xcWQqebV-vJ5pJYRvRRHkEwhwpgoKU,674
|
|
26
|
+
braindecode/functional/__init__.py,sha256=JPUDFeKtfogEzfrwPaZRBmxexPjBw7AglYMlImaAnWc,413
|
|
27
|
+
braindecode/functional/functions.py,sha256=CoEweM6YLhigx0tNmmz6yAc8iQ078sTFY2GeCjK5fFs,8622
|
|
28
|
+
braindecode/functional/initialization.py,sha256=BUSC7y2TMsfShpMYBVwm3xg3ODFqWp-STH7yD4sn8zk,1388
|
|
29
|
+
braindecode/models/__init__.py,sha256=xv1QPELZxocPgbc_mz-eYM5w08ZDNOsDV4pOnIFhUww,2551
|
|
30
|
+
braindecode/models/atcnet.py,sha256=PhDJl6nBChButabjsmLz_heRcGFCCMKoeUt7k7neNzs,24483
|
|
31
|
+
braindecode/models/attentionbasenet.py,sha256=1uwrtsdEGiBwokkO8A_2SR5zapOTQUBZd4q7hIpR0cw,23359
|
|
32
|
+
braindecode/models/base.py,sha256=9icrWNZBGbh_VLyB9m8g_K1QyK7s3mh8X-hJ29gEbWs,10802
|
|
33
|
+
braindecode/models/biot.py,sha256=T4PymX3penMJcrdfb5Nq6B3P-jyP2laAIu_R9o3uCXo,17512
|
|
34
|
+
braindecode/models/contrawr.py,sha256=eeR_ik4gNZ3rJLM6Mw9gJ2gTMkZ8CU8C4rN_GQMQTAE,10044
|
|
35
|
+
braindecode/models/ctnet.py,sha256=-J9QtUM8kcntz_xinfuBBvwDMECHiMPMcr2MS4GDPEY,17308
|
|
36
|
+
braindecode/models/deep4.py,sha256=YJQUw-0EuFUi4qjm8caJGB8wRM_aeJa5X_d8jrGaQAI,14588
|
|
37
|
+
braindecode/models/deepsleepnet.py,sha256=RrciuVJtZ-fhiUl-yLPfK2FP-G29V5Wor6pPlrMHQWQ,9218
|
|
38
|
+
braindecode/models/eegconformer.py,sha256=_Y0SXprBD74zD8nKPcS9HQ6PoWzfpu-VCY7Tj6R7Xrs,11612
|
|
39
|
+
braindecode/models/eeginception_erp.py,sha256=mwh3rGSHAJVvnbOlYTuWWkKxlmFAdAXBNCrq4IPgOS4,11408
|
|
40
|
+
braindecode/models/eeginception_mi.py,sha256=aKJRFuYrpbcRbmmT2xVghKbK8pnl7fzu5hrV0ybRKso,12424
|
|
41
|
+
braindecode/models/eegitnet.py,sha256=feXFmPCd-Ejxt7jgWPen1Ag0-oSclDVQai0Atwu9d_A,9827
|
|
42
|
+
braindecode/models/eegminer.py,sha256=ouKZah9Q7_sxT7DJJMcPObwVxNQE87sEljJg6QwiQNw,9847
|
|
43
|
+
braindecode/models/eegnet.py,sha256=1ZAG0KLDedkodDfqgnGGsoZj6iuU55kGmBlyQo1b47w,16284
|
|
44
|
+
braindecode/models/eegnex.py,sha256=KNJIh8pFNhY087Bey2OPzDD4Uqw9pS6UkwMjnOngBzg,8497
|
|
45
|
+
braindecode/models/eegresnet.py,sha256=cqWOSGqfJN_dNYUU9l8nYd_S3T1N-UX5-encKQzfBlg,12057
|
|
46
|
+
braindecode/models/eegsimpleconv.py,sha256=sHpK-7ZGOCMuXsdkSVuarFTd1T0jMJUP_xwXP3gxQwc,7268
|
|
47
|
+
braindecode/models/eegtcnet.py,sha256=np-93Ttctp2uaEYpMrfXfH5bJmCOUZZHLjv8GJEEym4,10830
|
|
48
|
+
braindecode/models/fbcnet.py,sha256=RBCLOaiUvivfsT2mq6FN0Kp1-rR3iB0ElzVpHxRl4oI,7486
|
|
49
|
+
braindecode/models/fblightconvnet.py,sha256=d5MwhawhkjilAMo0ckaYMxJhdGMEuorWgHX-TBgwv6s,11041
|
|
50
|
+
braindecode/models/fbmsnet.py,sha256=9bZn2_n1dTrI1Qh3Sz9zMZnH_a-Yq-13UHYSmF6r_UE,11659
|
|
51
|
+
braindecode/models/hybrid.py,sha256=hA8jwD3_3LL71BxUjRM1dkhqlHU9E9hjuDokh-jBq-4,4024
|
|
52
|
+
braindecode/models/ifnet.py,sha256=Y2bwfko3SDjD74AzgUEzgMhKJFGCCw_Q_Noh5VONEjQ,15137
|
|
53
|
+
braindecode/models/labram.py,sha256=vcrpwiu4F-djtIPscFbtP2Y0jTosyR_cXnOMQQRGPLw,41798
|
|
54
|
+
braindecode/models/msvtnet.py,sha256=hxeCLkHS6w2w89YlLfEPCyQ4XQQpt45bEYPiQJ9SFzY,12642
|
|
55
|
+
braindecode/models/sccnet.py,sha256=baGsNpVRdyWzbkTizOthJoJGejLb8BxMpN9ODwZinio,7919
|
|
56
|
+
braindecode/models/shallow_fbcsp.py,sha256=-sL6XCmCUZVhKKrC84-KWgwhWKQQvev1oNSmH_d6FA4,7499
|
|
57
|
+
braindecode/models/signal_jepa.py,sha256=UeSkeAM3Qmx8bbAqHCj5nP-PtZM00_5SGA8ibo9mptc,37079
|
|
58
|
+
braindecode/models/sinc_shallow.py,sha256=Ilv8K1XhMGiRTBtQdq7L595i6cEFYOBe0_UDv-LqL7s,11907
|
|
59
|
+
braindecode/models/sleep_stager_blanco_2020.py,sha256=qPKMDLuv4J7et4dZHyTe-j0oB6ESYn9mA_aW7RMC-rU,6002
|
|
60
|
+
braindecode/models/sleep_stager_chambon_2018.py,sha256=62x2Rdjd5UZDX8YlnfAtdRCrjLsPvPpnUweGElZLdkw,5213
|
|
61
|
+
braindecode/models/sleep_stager_eldele_2021.py,sha256=-4ISuznykDy9ZFzUM-OeiGCwmgM3U-LuyoDSrhPbRDw,17555
|
|
62
|
+
braindecode/models/sparcnet.py,sha256=eZMoJOxlcIyHPdQiX7KXUKuUBlAWkTwsXNWmNma_KAI,13941
|
|
63
|
+
braindecode/models/summary.csv,sha256=l7HYYwv3Z69JRPVIhVq-wr_nC1J1KIz6IGw_zeRSk58,6110
|
|
64
|
+
braindecode/models/syncnet.py,sha256=nrWJC5ijCSWKVZyRn-dmOuc1t5vk2C6tx8U3U4j5d5Y,8362
|
|
65
|
+
braindecode/models/tcn.py,sha256=SQu56H9zdbcbbDIXZVgZtJg7es8CRAJ7z-IBnmf4UWM,8158
|
|
66
|
+
braindecode/models/tidnet.py,sha256=k7Q0yAnEBmq1sqhsvoV4-g8wfYSUQ-C3iYxfLp5m8xQ,11805
|
|
67
|
+
braindecode/models/tsinception.py,sha256=EcfLDDJXZloh_vrKRuxAHYRZ1EVWlEKHNXqybTRrTbQ,10116
|
|
68
|
+
braindecode/models/usleep.py,sha256=dFh3KiZITu13gMxcbPGoK4hq2ySDWzVSCQXkj1006w0,11605
|
|
69
|
+
braindecode/models/util.py,sha256=VrhwG1YBGwKohCej6TmhrNAIoleQHRu3YdiBPuHFY_E,5302
|
|
70
|
+
braindecode/modules/__init__.py,sha256=PD2LpeSHWW_MgEef7-G8ief5gheGObzsIoacchxWuyA,1756
|
|
71
|
+
braindecode/modules/activation.py,sha256=lTO2IjZWBDeXZ4ZVDgLmTDmxHdqyAny3Fsy07HY9tmQ,1466
|
|
72
|
+
braindecode/modules/attention.py,sha256=fsjruzqMdtPbcS6jbU5ux8xtHl0BVrKt4agyf2yNe_E,23966
|
|
73
|
+
braindecode/modules/blocks.py,sha256=QE34HBg7kmEj0z-8dQZ1jJErLRPcniGIorMTeIArpv4,3621
|
|
74
|
+
braindecode/modules/convolution.py,sha256=VAqJXj1Xfb7qlnjRAhH_fJT8qPcaAqy5FHu_sNEbkWw,8291
|
|
75
|
+
braindecode/modules/filter.py,sha256=tj3zFQf40kt605yKE3bGpmnxtf91FTY7cWqxwAIIGPc,25050
|
|
76
|
+
braindecode/modules/layers.py,sha256=w_tAGcm8BDFiyMdAYM4DNLx46zIUted8B6my8_jtpps,3724
|
|
77
|
+
braindecode/modules/linear.py,sha256=pNhSUU0u-IGEUCjAfEDq_TJWnIJMWuOk7Y5L-7I8Meg,1702
|
|
78
|
+
braindecode/modules/parametrization.py,sha256=sTvV21-sdpqpiY2PzwDebi7SeEvkFw8yDgA6OqJDo34,1310
|
|
79
|
+
braindecode/modules/stats.py,sha256=ETqZH6PPyYCss2PKBDNrO4uUeijR4bxvjCQCXjNJkH4,2398
|
|
80
|
+
braindecode/modules/util.py,sha256=tVXEhzeTsYrr_wZ5CiXaq3VYGtC5TmGEEW2hMYjTQAE,2609
|
|
81
|
+
braindecode/modules/wrapper.py,sha256=Z-aZ4wxA0psYefMOfj03r7D1XjD4az6GpZpaQoDPJv0,2421
|
|
82
|
+
braindecode/preprocessing/__init__.py,sha256=V0iwdzb6DzpUaCabA7I6HmOqXK_XvTbpP5HaEduSJ4s,776
|
|
83
|
+
braindecode/preprocessing/mne_preprocess.py,sha256=_Jczaitqbx16utsUOhnonEcoExf6jPsWNwVOVvoKFfU,2210
|
|
84
|
+
braindecode/preprocessing/preprocess.py,sha256=-9IKjb0THq36m54TK-YRzV18wIkxmVgTcGO2sEH6q98,17665
|
|
85
|
+
braindecode/preprocessing/windowers.py,sha256=6w6mOnroGWnV7tS23UagZZepswaxaL00S45Jr5AViRE,36551
|
|
86
|
+
braindecode/samplers/__init__.py,sha256=TLuO6gXv2WioJdX671MI_CHVSsOfbjnly1Xv9K3_WdA,452
|
|
87
|
+
braindecode/samplers/base.py,sha256=z_Txp9cEwUmIBL0J6FPJbx1cMSsU9l9mxymRCGqNss0,15111
|
|
88
|
+
braindecode/samplers/ssl.py,sha256=C-FKopnbncN_-spQPCrgljY5Qds4fgTLr2TG3s_-QqU,9146
|
|
89
|
+
braindecode/training/__init__.py,sha256=sxtfI6MgxX3aP03EFc0wJYA37uULoL9SQyUao1Oxyn0,523
|
|
90
|
+
braindecode/training/callbacks.py,sha256=LqXqzJd6s3w0pvAKy9TEVTxWwVRyWNEu2uyWVsvb9RQ,839
|
|
91
|
+
braindecode/training/losses.py,sha256=EyVVZE_028G6WwrAtzLbrRfDLgsoKwLLhqIkOYBXNL4,3551
|
|
92
|
+
braindecode/training/scoring.py,sha256=tG7uCojIG3KIQZq3AymrdwlIJLlzbgsS0nBLUXQ-A8s,19062
|
|
93
|
+
braindecode/visualization/__init__.py,sha256=4EER_xHqZIDzEvmgUEm7K1bgNKpyZAIClR9ZCkMuY4M,240
|
|
94
|
+
braindecode/visualization/confusion_matrices.py,sha256=qIWMLEHow5CJ7PhGggD8mnD55Le6xhma9HSzt4R33fc,9509
|
|
95
|
+
braindecode/visualization/gradients.py,sha256=qAtXmuXkCDsWs8RMxvE6T9dz3uv_BhwTqhzkFFsEUDI,1948
|
|
96
|
+
braindecode-1.1.0.dist-info/licenses/LICENSE.txt,sha256=7rg7k6hyj8m9whQ7dpKbqnCssoOEx_Mbtqb4uSOjljE,1525
|
|
97
|
+
braindecode-1.1.0.dist-info/licenses/NOTICE.txt,sha256=sOxuTbalPxTM8H6VqtvGbXCt_BoOF7JevEYG_knqbm4,620
|
|
98
|
+
braindecode-1.1.0.dist-info/METADATA,sha256=jLapBzCcGh3gyo0cDE0PsjRsK8FWkqJVcV5Q5-3xnu0,6830
|
|
99
|
+
braindecode-1.1.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
100
|
+
braindecode-1.1.0.dist-info/top_level.txt,sha256=pHsWQmSy0uhIez62-HA9j0iaXKvSbUL39ifFRkFnChA,12
|
|
101
|
+
braindecode-1.1.0.dist-info/RECORD,,
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# BRAINDECODE Notice
|
|
2
|
+
|
|
3
|
+
## Licensed Components
|
|
4
|
+
|
|
5
|
+
### BSD-3-Clause Licensed Files
|
|
6
|
+
|
|
7
|
+
All files within the `src/` directory are licensed under the BSD-3-Clause License.
|
|
8
|
+
|
|
9
|
+
### CC BY-NC 4.0 Licensed Files
|
|
10
|
+
|
|
11
|
+
The following components are licensed under the Creative Commons Attribution-NonCommercial 4.0 International License:
|
|
12
|
+
|
|
13
|
+
- `braindecode/models/eegminer.py`
|
|
14
|
+
|
|
15
|
+
As well as class later imported into the `braindecode.models.module` named as GeneralizedGaussianFilter.
|
|
16
|
+
|
|
17
|
+
## License Links
|
|
18
|
+
|
|
19
|
+
- [BSD-3-Clause License](https://opensource.org/licenses/BSD-3-Clause)
|
|
20
|
+
- [CC BY-NC 4.0 License](https://creativecommons.org/licenses/by-nc/4.0/)
|
braindecode/datautil/mne.py
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
# Authors: Robin Schirrmeister <robintibor@gmail.com>
|
|
2
|
-
#
|
|
3
|
-
# License: BSD (3-clause)
|
|
4
|
-
|
|
5
|
-
from ..datasets.mne import * # noqa: F401,F403
|
|
6
|
-
from warnings import warn
|
|
7
|
-
|
|
8
|
-
warn('datautil.mne module is deprecated and is now under '
|
|
9
|
-
'datasets.mne, please use from import braindecode.datasets.mne')
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
# Authors: Robin Schirrmeister <robintibor@gmail.com>
|
|
2
|
-
#
|
|
3
|
-
# License: BSD (3-clause)
|
|
4
|
-
|
|
5
|
-
# To be removed in future versions
|
|
6
|
-
|
|
7
|
-
from ..preprocessing.preprocess import * # noqa: F401,F403
|
|
8
|
-
from warnings import warn
|
|
9
|
-
|
|
10
|
-
warn('datautil.preprocess module is deprecated and is now under '
|
|
11
|
-
'preprocessing.preprocess, please use from import '
|
|
12
|
-
'braindecode.preprocessing.preprocess')
|