pyerualjetwork 5b1__py3-none-any.whl → 5b3__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.
- pyerualjetwork/__init__.py +1 -1
- pyerualjetwork/neu.py +1 -1
- pyerualjetwork/neu_cuda.py +32 -32
- pyerualjetwork/visualizations.py +10 -10
- pyerualjetwork/visualizations_cuda.py +10 -10
- {pyerualjetwork-5b1.dist-info → pyerualjetwork-5b3.dist-info}/METADATA +1 -1
- {pyerualjetwork-5b1.dist-info → pyerualjetwork-5b3.dist-info}/RECORD +9 -9
- {pyerualjetwork-5b1.dist-info → pyerualjetwork-5b3.dist-info}/WHEEL +0 -0
- {pyerualjetwork-5b1.dist-info → pyerualjetwork-5b3.dist-info}/top_level.txt +0 -0
pyerualjetwork/__init__.py
CHANGED
@@ -38,7 +38,7 @@ PyerualJetwork document: https://github.com/HCB06/Anaplan/blob/main/Welcome_to_A
|
|
38
38
|
- Contact: tchasancan@gmail.com
|
39
39
|
"""
|
40
40
|
|
41
|
-
__version__ = "
|
41
|
+
__version__ = "5b3"
|
42
42
|
__update__ = """* Changes: https://github.com/HCB06/PyerualJetwork/blob/main/CHANGES
|
43
43
|
* PyerualJetwork Homepage: https://github.com/HCB06/PyerualJetwork/tree/main
|
44
44
|
* PyerualJetwork document: https://github.com/HCB06/PyerualJetwork/blob/main/Welcome_to_PyerualJetwork/PYERUALJETWORK_USER_MANUEL_AND_LEGAL_INFORMATION(EN).pdf
|
pyerualjetwork/neu.py
CHANGED
@@ -178,7 +178,7 @@ def learn(x_train, y_train, optimizer, fit_start=True, gen=None, batch_size=1, p
|
|
178
178
|
if target_acc is not None and (target_acc < 0 or target_acc > 1): raise ValueError('target_acc must be in range 0 and 1')
|
179
179
|
if fit_start is not True and fit_start is not False: raise ValueError('fit_start parameter only be True or False. Please read doc-string')
|
180
180
|
|
181
|
-
if neurons
|
181
|
+
if neurons != []:
|
182
182
|
fit_start = False
|
183
183
|
weight_evolve = True
|
184
184
|
is_mlp = True
|
pyerualjetwork/neu_cuda.py
CHANGED
@@ -59,7 +59,7 @@ bar_format_learner = loading_bars()[1]
|
|
59
59
|
def plan_fit(
|
60
60
|
x_train,
|
61
61
|
y_train,
|
62
|
-
|
62
|
+
activations=['linear'],
|
63
63
|
W=None,
|
64
64
|
auto_normalization=False,
|
65
65
|
dtype=cp.float32
|
@@ -70,7 +70,7 @@ def plan_fit(
|
|
70
70
|
plan_fit Args:
|
71
71
|
:param (aray-like[cupy]) x_train: (aray-like[cupy]): List or cupy array of input data.
|
72
72
|
:param (aray-like[cupy]) y_train: List or cupy array of target labels. (one hot encoded)
|
73
|
-
:param (list)
|
73
|
+
:param (list) activations: For deeper PLAN networks, activation function parameters. For more information please run this code: nn.activations_list() default: [None] (optional)
|
74
74
|
W (cupy.ndarray, optional): If you want to re-continue or update model
|
75
75
|
auto_normalization (bool, optional): Normalization may solves overflow problem. Default: False
|
76
76
|
dtype (cupy.dtype, optional): Data type for the arrays. cp.float32 by default. Example: cp.float64 or cp.float16.
|
@@ -84,8 +84,8 @@ def plan_fit(
|
|
84
84
|
|
85
85
|
weight = cp.zeros((len(y_train[0]), len(x_train[0].ravel()))).astype(dtype, copy=False) if W is None else W
|
86
86
|
|
87
|
-
if auto_normalization is True: x_train = normalization(apply_activation(x_train,
|
88
|
-
elif auto_normalization is False: x_train = apply_activation(x_train,
|
87
|
+
if auto_normalization is True: x_train = normalization(apply_activation(x_train, activations))
|
88
|
+
elif auto_normalization is False: x_train = apply_activation(x_train, activations)
|
89
89
|
else: raise ValueError('normalization parameter only be True or False')
|
90
90
|
|
91
91
|
weight += y_train.T @ x_train
|
@@ -96,7 +96,7 @@ def learn(x_train, y_train, optimizer, fit_start=True, gen=None, batch_size=1, p
|
|
96
96
|
weight_evolve=True, neural_web_history=False, show_current_activations=False, auto_normalization=False, target_acc=None,
|
97
97
|
neurons_history=False, early_stop=False, show_history=False, loss='categorical_crossentropy',
|
98
98
|
interval=33.33, target_loss=None, loss_impact=0.1, acc_impact=0.9,
|
99
|
-
start_this_act=None, start_this_W=None, neurons=[],
|
99
|
+
start_this_act=None, start_this_W=None, neurons=[], activations=[], dtype=cp.float32, memory='gpu'):
|
100
100
|
"""
|
101
101
|
Optimizes the activation functions for a neural network by leveraging train data to find
|
102
102
|
the most accurate combination of activation potentiation(or activation function) & weight values for the given dataset.
|
@@ -146,7 +146,7 @@ def learn(x_train, y_train, optimizer, fit_start=True, gen=None, batch_size=1, p
|
|
146
146
|
:param start_this_act: (list, optional): To resume a previously canceled or interrupted training from where it left off, or to continue from that point with a different strategy, provide the list of activation functions selected up to the learned portion to this parameter. Default is None
|
147
147
|
:param start_this_W: (cupy.array, optional): To resume a previously canceled or interrupted training from where it left off, or to continue from that point with a different strategy, provide the weight matrix of this genome. Default is None
|
148
148
|
:param neurons: (list[int], optional): If you dont want train PLAN model this parameter represents neuron count of each hidden layer for MLP. Number of elements --> Layer count. Default: [] (No hidden layer) --> architecture setted to PLAN, if not --> architecture setted to MLP.
|
149
|
-
:param
|
149
|
+
:param activations: (list[str], optional): If you dont want train PLAN model this parameter represents activation function of each hidden layer for MLP. if neurons is not [] --> uses default: ['linear'] * len(neurons). if neurons is [] --> uses [].
|
150
150
|
:param dtype: (cupy.dtype): Data type for the Weight matrices. np.float32 by default. Example: cp.float64 or cp.float16.
|
151
151
|
:param memory: (str): The memory parameter determines whether the dataset to be processed on the GPU will be stored in the CPU's RAM or the GPU's RAM. Options: 'gpu', 'cpu'. Default: 'gpu'.
|
152
152
|
|
@@ -159,15 +159,15 @@ def learn(x_train, y_train, optimizer, fit_start=True, gen=None, batch_size=1, p
|
|
159
159
|
data = 'Train'
|
160
160
|
|
161
161
|
except_this = ['spiral', 'circular']
|
162
|
-
|
163
|
-
|
162
|
+
activations = [item for item in all_activations() if item not in except_this]
|
163
|
+
activations_len = len(activations)
|
164
164
|
|
165
|
-
if pop_size is None: pop_size =
|
165
|
+
if pop_size is None: pop_size = activations_len
|
166
166
|
y_train = optimize_labels(y_train, cuda=True)
|
167
167
|
|
168
|
-
if pop_size <
|
168
|
+
if pop_size < activations_len: raise ValueError(f"pop_size must be higher or equal to {activations_len}")
|
169
169
|
|
170
|
-
if gen is None: gen =
|
170
|
+
if gen is None: gen = activations_len
|
171
171
|
|
172
172
|
if memory == 'gpu':
|
173
173
|
x_train = transfer_to_gpu(x_train, dtype=x_train.dtype)
|
@@ -187,7 +187,7 @@ def learn(x_train, y_train, optimizer, fit_start=True, gen=None, batch_size=1, p
|
|
187
187
|
if target_acc is not None and (target_acc < 0 or target_acc > 1): raise ValueError('target_acc must be in range 0 and 1')
|
188
188
|
if fit_start is not True and fit_start is not False: raise ValueError('fit_start parameter only be True or False. Please read doc-string')
|
189
189
|
|
190
|
-
if neurons
|
190
|
+
if neurons != []:
|
191
191
|
fit_start = False
|
192
192
|
weight_evolve = True
|
193
193
|
is_mlp = True
|
@@ -208,10 +208,10 @@ def learn(x_train, y_train, optimizer, fit_start=True, gen=None, batch_size=1, p
|
|
208
208
|
loss_list = []
|
209
209
|
target_pop = []
|
210
210
|
|
211
|
-
progress = initialize_loading_bar(total=
|
211
|
+
progress = initialize_loading_bar(total=activations_len, desc="", ncols=79, bar_format=bar_format_learner)
|
212
212
|
|
213
|
-
if fit_start is False or pop_size >
|
214
|
-
weight_pop, act_pop = define_genomes(input_shape=len(x_train[0]), output_shape=len(y_train[0]), neurons=neurons,
|
213
|
+
if fit_start is False or pop_size > activations_len:
|
214
|
+
weight_pop, act_pop = define_genomes(input_shape=len(x_train[0]), output_shape=len(y_train[0]), neurons=neurons, activations=activations, population_size=pop_size, dtype=dtype)
|
215
215
|
|
216
216
|
else:
|
217
217
|
weight_pop = [0] * pop_size
|
@@ -237,18 +237,18 @@ def learn(x_train, y_train, optimizer, fit_start=True, gen=None, batch_size=1, p
|
|
237
237
|
x_train_batch = cp.array(x_train_batch, dtype=x_train_batch.dtype, copy=False)
|
238
238
|
y_train_batch = cp.array(y_train_batch, dtype=y_train.dtype)
|
239
239
|
|
240
|
-
if fit_start is True and i == 0 and j <
|
240
|
+
if fit_start is True and i == 0 and j < activations_len:
|
241
241
|
if start_this_act is not None and j == 0:
|
242
242
|
pass
|
243
243
|
else:
|
244
|
-
act_pop[j] =
|
245
|
-
W = plan_fit(x_train_batch, y_train_batch,
|
244
|
+
act_pop[j] = activations[j]
|
245
|
+
W = plan_fit(x_train_batch, y_train_batch, activations=act_pop[j], auto_normalization=auto_normalization, dtype=dtype)
|
246
246
|
weight_pop[j] = W
|
247
247
|
|
248
248
|
if weight_evolve is False:
|
249
|
-
weight_pop[j] = plan_fit(x_train_batch, y_train_batch,
|
249
|
+
weight_pop[j] = plan_fit(x_train_batch, y_train_batch, activations=act_pop[j], auto_normalization=auto_normalization, dtype=dtype)
|
250
250
|
|
251
|
-
model = evaluate(x_train_batch, y_train_batch, W=weight_pop[j],
|
251
|
+
model = evaluate(x_train_batch, y_train_batch, W=weight_pop[j], activations=act_pop[j], auto_normalization=auto_normalization, is_mlp=is_mlp)
|
252
252
|
acc = model[get_acc()]
|
253
253
|
|
254
254
|
if loss == 'categorical_crossentropy':
|
@@ -306,7 +306,7 @@ def learn(x_train, y_train, optimizer, fit_start=True, gen=None, batch_size=1, p
|
|
306
306
|
if target_acc is not None and best_acc >= target_acc:
|
307
307
|
progress.close()
|
308
308
|
train_model = evaluate(x_train, y_train, W=best_weight,
|
309
|
-
|
309
|
+
activations=final_activations, auto_normalization=auto_normalization, is_mlp=is_mlp)
|
310
310
|
if loss == 'categorical_crossentropy':
|
311
311
|
train_loss = categorical_crossentropy(y_true_batch=y_train,
|
312
312
|
y_pred_batch=train_model[get_preds_softmax()])
|
@@ -326,7 +326,7 @@ def learn(x_train, y_train, optimizer, fit_start=True, gen=None, batch_size=1, p
|
|
326
326
|
if target_loss is not None and best_loss <= target_loss:
|
327
327
|
progress.close()
|
328
328
|
train_model = evaluate(x_train, y_train, W=best_weight,
|
329
|
-
|
329
|
+
activations=final_activations, auto_normalization=auto_normalization, is_mlp=is_mlp)
|
330
330
|
|
331
331
|
if loss == 'categorical_crossentropy':
|
332
332
|
train_loss = categorical_crossentropy(y_true_batch=y_train,
|
@@ -378,7 +378,7 @@ def learn(x_train, y_train, optimizer, fit_start=True, gen=None, batch_size=1, p
|
|
378
378
|
if best_acc_per_gen_list[i] == best_acc_per_gen_list[i-1]:
|
379
379
|
progress.close()
|
380
380
|
train_model = evaluate(x_train, y_train, W=best_weight,
|
381
|
-
|
381
|
+
activations=final_activations, auto_normalization=auto_normalization, is_mlp=is_mlp)
|
382
382
|
|
383
383
|
if loss == 'categorical_crossentropy':
|
384
384
|
train_loss = categorical_crossentropy(y_true_batch=y_train,
|
@@ -399,7 +399,7 @@ def learn(x_train, y_train, optimizer, fit_start=True, gen=None, batch_size=1, p
|
|
399
399
|
# Final evaluation
|
400
400
|
progress.close()
|
401
401
|
train_model = evaluate(x_train, y_train, W=best_weight,
|
402
|
-
|
402
|
+
activations=final_activations, auto_normalization=auto_normalization, is_mlp=is_mlp)
|
403
403
|
|
404
404
|
if loss == 'categorical_crossentropy':
|
405
405
|
train_loss = categorical_crossentropy(y_true_batch=y_train,
|
@@ -420,7 +420,7 @@ def evaluate(
|
|
420
420
|
x_test,
|
421
421
|
y_test,
|
422
422
|
W,
|
423
|
-
|
423
|
+
activations=['linear'],
|
424
424
|
auto_normalization=False,
|
425
425
|
is_mlp=False
|
426
426
|
) -> tuple:
|
@@ -434,7 +434,7 @@ def evaluate(
|
|
434
434
|
|
435
435
|
W (cp.ndarray): Neural net weight matrix.
|
436
436
|
|
437
|
-
|
437
|
+
activations (list): Activation list. Default = ['linear'].
|
438
438
|
|
439
439
|
auto_normalization (bool, optional): Normalization for x_test ? Default = False.
|
440
440
|
|
@@ -446,15 +446,15 @@ def evaluate(
|
|
446
446
|
|
447
447
|
if auto_normalization: x_test = normalization(x_test, dtype=x_test.dtype)
|
448
448
|
|
449
|
-
if isinstance(
|
450
|
-
|
451
|
-
elif isinstance(
|
452
|
-
|
449
|
+
if isinstance(activations, str):
|
450
|
+
activations = [activations]
|
451
|
+
elif isinstance(activations, list):
|
452
|
+
activations = [item if isinstance(item, list) or isinstance(item, str) else [item] for item in activations]
|
453
453
|
|
454
454
|
if is_mlp:
|
455
455
|
layer = x_test
|
456
456
|
for i in range(len(W)):
|
457
|
-
if i != len(W) - 1 and i != 0: layer = apply_activation(layer,
|
457
|
+
if i != len(W) - 1 and i != 0: layer = apply_activation(layer, activations[i])
|
458
458
|
|
459
459
|
layer = layer @ W[i].T
|
460
460
|
|
@@ -462,7 +462,7 @@ def evaluate(
|
|
462
462
|
|
463
463
|
else:
|
464
464
|
|
465
|
-
x_test = apply_activation(x_test,
|
465
|
+
x_test = apply_activation(x_test, activations)
|
466
466
|
result = x_test @ W.T
|
467
467
|
|
468
468
|
max_vals = cp.max(result, axis=1, keepdims=True)
|
pyerualjetwork/visualizations.py
CHANGED
@@ -86,16 +86,16 @@ def draw_model_architecture(model_name, model_path=''):
|
|
86
86
|
Visualizes the architecture of a neural network model with multiple inputs based on activation functions.
|
87
87
|
"""
|
88
88
|
|
89
|
-
from .model_operations import load_model, get_scaler,
|
89
|
+
from .model_operations import load_model, get_scaler, get_act, get_weights
|
90
90
|
|
91
91
|
model = load_model(model_name=model_name, model_path=model_path)
|
92
92
|
|
93
93
|
W = model[get_weights()]
|
94
|
-
|
94
|
+
activations = model[get_act()]
|
95
95
|
scaler_params = model[get_scaler()]
|
96
96
|
|
97
97
|
# Calculate dimensions based on number of activation functions
|
98
|
-
num_activations = len(
|
98
|
+
num_activations = len(activations)
|
99
99
|
input_groups = num_activations # Number of input groups equals number of activations
|
100
100
|
num_inputs = W.shape[1]
|
101
101
|
|
@@ -138,7 +138,7 @@ def draw_model_architecture(model_name, model_path=''):
|
|
138
138
|
for i in range(num_inputs):
|
139
139
|
plt.plot(*pos[f'input_{group}_{i}'], 'o', color='lightgreen', markersize=20)
|
140
140
|
plt.text(pos[f'input_{group}_{i}'][0] - 0.05, pos[f'input_{group}_{i}'][1],
|
141
|
-
f'Input #{i+1} ({
|
141
|
+
f'Input #{i+1} ({activations[group]})', ha='right', va='center')
|
142
142
|
|
143
143
|
# Draw connections from input to summed input directly
|
144
144
|
plt.plot([pos[f'input_{group}_{i}'][0], pos[f'summed_{i}'][0]],
|
@@ -325,7 +325,7 @@ def draw_activations(x_train, activation):
|
|
325
325
|
return x_train
|
326
326
|
|
327
327
|
|
328
|
-
def plot_evaluate(x_test, y_test, y_preds, acc_list, W,
|
328
|
+
def plot_evaluate(x_test, y_test, y_preds, acc_list, W, activations):
|
329
329
|
|
330
330
|
from .metrics import metrics, confusion_matrix, roc_curve
|
331
331
|
from .ui import loading_bars, initialize_loading_bar
|
@@ -433,7 +433,7 @@ def plot_evaluate(x_test, y_test, y_preds, acc_list, W, activation_potentiation)
|
|
433
433
|
|
434
434
|
for i in range(len(grid_full)):
|
435
435
|
|
436
|
-
Z[i] = np.argmax(predict_model_ram(grid_full[i], W=W,
|
436
|
+
Z[i] = np.argmax(predict_model_ram(grid_full[i], W=W, activations=activations))
|
437
437
|
predict_progress.update(1)
|
438
438
|
|
439
439
|
predict_progress.close()
|
@@ -453,7 +453,7 @@ def plot_evaluate(x_test, y_test, y_preds, acc_list, W, activation_potentiation)
|
|
453
453
|
plt.show()
|
454
454
|
|
455
455
|
|
456
|
-
def plot_decision_boundary(x, y,
|
456
|
+
def plot_decision_boundary(x, y, activations, W, artist=None, ax=None):
|
457
457
|
|
458
458
|
from .model_operations import predict_model_ram
|
459
459
|
from .data_operations import decode_one_hot
|
@@ -473,7 +473,7 @@ def plot_decision_boundary(x, y, activation_potentiation, W, artist=None, ax=Non
|
|
473
473
|
Z = [None] * len(grid_full)
|
474
474
|
|
475
475
|
for i in range(len(grid_full)):
|
476
|
-
Z[i] = np.argmax(predict_model_ram(grid_full[i], W=W,
|
476
|
+
Z[i] = np.argmax(predict_model_ram(grid_full[i], W=W, activations=activations))
|
477
477
|
|
478
478
|
Z = np.array(Z, dtype=np.int32)
|
479
479
|
Z = Z.reshape(xx.shape)
|
@@ -667,9 +667,9 @@ def update_weight_visualization_for_fit(ax, LTPW, artist2):
|
|
667
667
|
"""
|
668
668
|
|
669
669
|
""" DISABLED
|
670
|
-
def update_decision_boundary_for_fit(ax, x_val, y_val,
|
670
|
+
def update_decision_boundary_for_fit(ax, x_val, y_val, activations, LTPW, artist1):
|
671
671
|
|
672
|
-
art1_1, art1_2 = plot_decision_boundary(x_val, y_val,
|
672
|
+
art1_1, art1_2 = plot_decision_boundary(x_val, y_val, activations, LTPW, artist=artist1, ax=ax)
|
673
673
|
artist1.append([*art1_1.collections, art1_2])
|
674
674
|
"""
|
675
675
|
|
@@ -87,16 +87,16 @@ def draw_model_architecture(model_name, model_path=''):
|
|
87
87
|
Visualizes the architecture of a neural network model with multiple inputs based on activation functions.
|
88
88
|
"""
|
89
89
|
|
90
|
-
from .model_operations_cuda import load_model, get_scaler,
|
90
|
+
from .model_operations_cuda import load_model, get_scaler, get_act, get_weights
|
91
91
|
|
92
92
|
model = load_model(model_name=model_name, model_path=model_path)
|
93
93
|
|
94
94
|
W = model[get_weights()]
|
95
|
-
|
95
|
+
activations = model[get_act()]
|
96
96
|
scaler_params = model[get_scaler()]
|
97
97
|
|
98
98
|
# Calculate dimensions based on number of activation functions
|
99
|
-
num_activations = len(
|
99
|
+
num_activations = len(activations)
|
100
100
|
input_groups = num_activations # Number of input groups equals number of activations
|
101
101
|
num_inputs = W.shape[1]
|
102
102
|
|
@@ -139,7 +139,7 @@ def draw_model_architecture(model_name, model_path=''):
|
|
139
139
|
for i in range(num_inputs):
|
140
140
|
plt.plot(*pos[f'input_{group}_{i}'], 'o', color='lightgreen', markersize=20)
|
141
141
|
plt.text(pos[f'input_{group}_{i}'][0] - 0.05, pos[f'input_{group}_{i}'][1],
|
142
|
-
f'Input #{i+1} ({
|
142
|
+
f'Input #{i+1} ({activations[group]})', ha='right', va='center')
|
143
143
|
|
144
144
|
# Draw connections from input to summed input directly
|
145
145
|
plt.plot([pos[f'input_{group}_{i}'][0], pos[f'summed_{i}'][0]],
|
@@ -326,7 +326,7 @@ def draw_activations(x_train, activation):
|
|
326
326
|
return x_train
|
327
327
|
|
328
328
|
|
329
|
-
def plot_evaluate(x_test, y_test, y_preds, acc_list, W,
|
329
|
+
def plot_evaluate(x_test, y_test, y_preds, acc_list, W, activations):
|
330
330
|
|
331
331
|
from .metrics_cuda import metrics, confusion_matrix, roc_curve
|
332
332
|
from .ui import loading_bars, initialize_loading_bar
|
@@ -432,7 +432,7 @@ def plot_evaluate(x_test, y_test, y_preds, acc_list, W, activation_potentiation)
|
|
432
432
|
|
433
433
|
for i in range(len(grid_full)):
|
434
434
|
|
435
|
-
Z[i] = cp.argmax(predict_model_ram(grid_full[i], W=W,
|
435
|
+
Z[i] = cp.argmax(predict_model_ram(grid_full[i], W=W, activations=activations))
|
436
436
|
predict_progress.update(1)
|
437
437
|
|
438
438
|
predict_progress.close()
|
@@ -449,7 +449,7 @@ def plot_evaluate(x_test, y_test, y_preds, acc_list, W, activation_potentiation)
|
|
449
449
|
plt.show()
|
450
450
|
|
451
451
|
|
452
|
-
def plot_decision_boundary(x, y,
|
452
|
+
def plot_decision_boundary(x, y, activations, W, artist=None, ax=None):
|
453
453
|
|
454
454
|
from .model_operations_cuda import predict_model_ram
|
455
455
|
from .data_operations_cuda import decode_one_hot
|
@@ -469,7 +469,7 @@ def plot_decision_boundary(x, y, activation_potentiation, W, artist=None, ax=Non
|
|
469
469
|
Z = [None] * len(grid_full)
|
470
470
|
|
471
471
|
for i in range(len(grid_full)):
|
472
|
-
Z[i] = cp.argmax(predict_model_ram(grid_full[i], W=W,
|
472
|
+
Z[i] = cp.argmax(predict_model_ram(grid_full[i], W=W, activations=activations))
|
473
473
|
|
474
474
|
Z = cp.array(Z, dtype=cp.int32)
|
475
475
|
Z = Z.reshape(xx.shape)
|
@@ -638,8 +638,8 @@ def update_neural_web_for_fit(W, ax, G, artist):
|
|
638
638
|
"""
|
639
639
|
|
640
640
|
""" DISABLED
|
641
|
-
def update_decision_boundary_for_fit(ax, x_val, y_val,
|
642
|
-
art1_1, art1_2 = plot_decision_boundary(x_val, y_val,
|
641
|
+
def update_decision_boundary_for_fit(ax, x_val, y_val, activations, LTPW, artist1):
|
642
|
+
art1_1, art1_2 = plot_decision_boundary(x_val, y_val, activations, LTPW, artist=artist1, ax=ax)
|
643
643
|
artist1.append([*art1_1.collections, art1_2])
|
644
644
|
"""
|
645
645
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: pyerualjetwork
|
3
|
-
Version:
|
3
|
+
Version: 5b3
|
4
4
|
Summary: PyerualJetwork is a machine learning library supported with GPU(CUDA) acceleration written in Python for professionals and researchers including with PLAN algorithm, PLANEAT algorithm (genetic optimization). Also includes data pre-process and memory manegament
|
5
5
|
Author: Hasan Can Beydili
|
6
6
|
Author-email: tchasancan@gmail.com
|
@@ -1,4 +1,4 @@
|
|
1
|
-
pyerualjetwork/__init__.py,sha256=
|
1
|
+
pyerualjetwork/__init__.py,sha256=oRByBl-TW3JDnYYencDENYU_PkCV_f8piVIkK641M4g,2631
|
2
2
|
pyerualjetwork/activation_functions.py,sha256=X7Kv8qv8oZq8hvTdUiV-GkFjKHRlKIQypRPXh6gdkm4,7614
|
3
3
|
pyerualjetwork/activation_functions_cuda.py,sha256=pefklsl9QuSVbKwiUUHeF_ExN0bICH7QIF1MfoMU40Q,7665
|
4
4
|
pyerualjetwork/data_operations.py,sha256=LKmLfl43zSCCuP2cWkBM-D6GtlhxXQggsNvZNUwHDe4,16347
|
@@ -14,12 +14,12 @@ pyerualjetwork/metrics.py,sha256=q7MkhnZDRbCjFBDDfUgrl8lBYnUT_1ro1LxeBq105pI,607
|
|
14
14
|
pyerualjetwork/metrics_cuda.py,sha256=73h9GC7XwmnFCVzFEEiPQfF8CwHIz2wsCbxpZrJtYgw,5061
|
15
15
|
pyerualjetwork/model_operations.py,sha256=F5qYAU578yrS1cUCwsaPJnqgfEAEUD_50vspakypTGY,15971
|
16
16
|
pyerualjetwork/model_operations_cuda.py,sha256=lgYAEGUERTMU7TEWRVKaa3yk_IOt4Jo9RJP9lDsNREU,17206
|
17
|
-
pyerualjetwork/neu.py,sha256=
|
18
|
-
pyerualjetwork/neu_cuda.py,sha256=
|
17
|
+
pyerualjetwork/neu.py,sha256=bNl8nnL5R3WS8vNWxFbVzeX9eeGgownHdebbsKKNfvU,24948
|
18
|
+
pyerualjetwork/neu_cuda.py,sha256=0hUCQ02tLFg1cGuqOxT3jfBx3W28hIL6nhEu4m2LeY8,25999
|
19
19
|
pyerualjetwork/ui.py,sha256=JBTFYz5R24XwNKhA3GSW-oYAoiIBxAE3kFGXkvm5gqw,656
|
20
|
-
pyerualjetwork/visualizations.py,sha256=
|
21
|
-
pyerualjetwork/visualizations_cuda.py,sha256=
|
22
|
-
pyerualjetwork-
|
23
|
-
pyerualjetwork-
|
24
|
-
pyerualjetwork-
|
25
|
-
pyerualjetwork-
|
20
|
+
pyerualjetwork/visualizations.py,sha256=4DpboCi1GnJjKRVQ0RdGyQyHagZQTLUbCgSI7UHzd6o,28212
|
21
|
+
pyerualjetwork/visualizations_cuda.py,sha256=7lYrkOdrjwQGB3T4k_vI8UDxsm_TRjzaSSg9GhlNczs,28667
|
22
|
+
pyerualjetwork-5b3.dist-info/METADATA,sha256=jxcttUe0NJiI48xfRmAl4Ck0ZrodlOenv4UvkoPAVDI,7503
|
23
|
+
pyerualjetwork-5b3.dist-info/WHEEL,sha256=2wepM1nk4DS4eFpYrW1TTqPcoGNfHhhO_i5m4cOimbo,92
|
24
|
+
pyerualjetwork-5b3.dist-info/top_level.txt,sha256=BRyt62U_r3ZmJpj-wXNOoA345Bzamrj6RbaWsyW4tRg,15
|
25
|
+
pyerualjetwork-5b3.dist-info/RECORD,,
|
File without changes
|
File without changes
|