pyerualjetwork 5.21b2__py3-none-any.whl → 5.22__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.
@@ -42,7 +42,7 @@ PyerualJetwork document: https://github.com/HCB06/PyerualJetwork/blob/main/Welco
42
42
  - Contact: tchasancan@gmail.com
43
43
  """
44
44
 
45
- __version__ = "5.21b2"
45
+ __version__ = "5.22"
46
46
  __update__ = """* Changes: https://github.com/HCB06/PyerualJetwork/blob/main/CHANGES
47
47
  * PyerualJetwork Homepage: https://github.com/HCB06/PyerualJetwork/tree/main
48
48
  * PyerualJetwork document: https://github.com/HCB06/PyerualJetwork/blob/main/Welcome_to_PyerualJetwork/PYERUALJETWORK_USER_MANUEL_AND_LEGAL_INFORMATION(EN).pdf
@@ -1,4 +1,5 @@
1
1
  import cupy as cp
2
+ import numpy as np
2
3
  from scipy.special import expit, softmax
3
4
  import warnings
4
5
 
@@ -198,10 +199,16 @@ def apply_activation(Input, activation_list):
198
199
  'spiral': spiral_activation,
199
200
  'circular': circular_activation
200
201
  }
202
+
203
+ try:
204
+
205
+ valid_mask = cp.array([act in activation_functions for act in activation_list])
206
+ valid_activations = np.array(activation_list)[valid_mask.get()]
201
207
 
202
- valid_mask = cp.array([act in activation_functions for act in activation_list])
203
- valid_activations = cp.array(activation_list)[valid_mask]
204
-
205
- activation_outputs = cp.array([activation_functions[act](origin_input) for act in valid_activations])
208
+ activation_outputs = cp.array([activation_functions[act](origin_input) for act in valid_activations])
206
209
 
207
- return cp.sum(activation_outputs, axis=0)
210
+ return cp.sum(activation_outputs, axis=0)
211
+
212
+ except Exception as e:
213
+ warnings.warn(f"Error in activation processing: {str(e)}", RuntimeWarning)
214
+ return Input
@@ -536,51 +536,46 @@ def predict_from_memory(Input, W, scaler_params=None, activations=['linear'], ac
536
536
  from .data_operations_cuda import standard_scaler
537
537
  from .activation_functions_cuda import apply_activation
538
538
 
539
- try:
540
-
541
- if isinstance(activations, str):
542
- activations = [activations]
543
- elif isinstance(activations, list):
544
- activations = [item if isinstance(item, list) or isinstance(item, str) else [item] for item in activations]
539
+ if isinstance(activations, str):
540
+ activations = [activations]
541
+ elif isinstance(activations, list):
542
+ activations = [item if isinstance(item, list) or isinstance(item, str) else [item] for item in activations]
545
543
 
546
- Input = standard_scaler(None, Input, scaler_params)
544
+ Input = standard_scaler(None, Input, scaler_params)
547
545
 
548
- if model_type == 'MLP':
549
- layer = Input
550
- for i in range(len(W)):
551
- if i != len(W) - 1 and i != 0: layer = apply_activation(layer, activations[i])
546
+ if model_type == 'MLP':
547
+ layer = Input
548
+ for i in range(len(W)):
549
+ if i != len(W) - 1 and i != 0: layer = apply_activation(layer, activations[i])
552
550
 
553
- layer = layer @ W[i].T
551
+ layer = layer @ W[i].T
554
552
 
555
- result = layer
553
+ result = layer
556
554
 
557
- if model_type == 'PLAN':
555
+ if model_type == 'PLAN':
558
556
 
559
- Input = apply_activation(Input, activations)
560
- result = Input @ W.T
561
-
562
- if model_type == 'PTNN':
557
+ Input = apply_activation(Input, activations)
558
+ result = Input @ W.T
559
+
560
+ if model_type == 'PTNN':
563
561
 
564
- if isinstance(activation_potentiation, str):
565
- activation_potentiation = [activation_potentiation]
566
- elif isinstance(activation_potentiation, list):
567
- activation_potentiation = [item if isinstance(item, list) or isinstance(item, str) else [item] for item in activation_potentiation]
562
+ if isinstance(activation_potentiation, str):
563
+ activation_potentiation = [activation_potentiation]
564
+ elif isinstance(activation_potentiation, list):
565
+ activation_potentiation = [item if isinstance(item, list) or isinstance(item, str) else [item] for item in activation_potentiation]
568
566
 
569
- Input = apply_activation(Input, activation_potentiation)
570
- layer = Input @ W[0].T
567
+ Input = apply_activation(Input, activation_potentiation)
568
+ layer = Input @ W[0].T
571
569
 
572
- for i in range(1, len(W)):
573
- if i != len(W) - 1: layer = apply_activation(layer, activations[i])
570
+ for i in range(1, len(W)):
571
+ if i != len(W) - 1: layer = apply_activation(layer, activations[i])
574
572
 
575
- layer = layer @ W[i].T
573
+ layer = layer @ W[i].T
576
574
 
577
- result = layer
575
+ result = layer
578
576
 
579
- return result
577
+ return result
580
578
 
581
- except:
582
- print(Fore.RED + "ERROR: Unexpected input or wrong model parameters from: predict_model_ram." + Style.RESET_ALL)
583
- sys.exit()
584
579
 
585
580
 
586
581
  def reverse_predict_from_memory(output, W, dtype=cp.float32):
pyerualjetwork/neu_cpu.py CHANGED
@@ -340,17 +340,17 @@ def learn(x_train, y_train, optimizer, gen, pop_size, fit_start=True, batch_size
340
340
 
341
341
  if fitness >= best_fitness:
342
342
 
343
- best_fitness = fitness
344
- best_acc = acc
345
- best_loss = train_loss
343
+ best_fitness = copy.copy(fitness)
344
+ best_acc = copy.copy(acc)
345
+ best_loss = copy.copy(train_loss)
346
346
  best_weight = np.copy(weight_pop[j]) if model_type == 'PLAN' else copy.deepcopy(weight_pop[j])
347
- best_model = model
347
+ best_model = copy.deepcopy(model)
348
348
 
349
349
  final_activations = act_pop[j].copy() if isinstance(act_pop[j], list) else act_pop[j]
350
350
  if model_type == 'PLAN': final_activations = [final_activations[0]] if len(set(final_activations)) == 1 else final_activations # removing if all same
351
351
 
352
352
  if batch_size == 1:
353
- postfix_dict[f"{data} Accuracy"] = np.round(best_acc, 4)
353
+ postfix_dict[f"{data} Accuracy"] = np.round(best_acc)
354
354
  postfix_dict[f"{data} Loss"] = np.round(train_loss, 4)
355
355
  progress.set_postfix(postfix_dict)
356
356
 
@@ -351,11 +351,11 @@ def learn(x_train, y_train, optimizer, gen, pop_size, fit_start=True, batch_size
351
351
 
352
352
  if fitness >= best_fitness:
353
353
 
354
- best_fitness = fitness
355
- best_acc = acc
356
- best_loss = train_loss
354
+ best_fitness = copy.copy(fitness)
355
+ best_acc = copy.copy(acc)
356
+ best_loss = copy.copy(train_loss)
357
357
  best_weight = cp.copy(weight_pop[j]) if model_type == 'PLAN' else copy.deepcopy(weight_pop[j])
358
- best_model = model
358
+ best_model = copy.deepcopy(model)
359
359
 
360
360
  final_activations = act_pop[j].copy() if isinstance(act_pop[j], list) else act_pop[j]
361
361
  if model_type == 'PLAN': final_activations = [final_activations[0]] if len(set(final_activations)) == 1 else final_activations # removing if all same
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyerualjetwork
3
- Version: 5.21b2
3
+ Version: 5.22
4
4
  Summary: PyereualJetwork is a GPU-accelerated machine learning library in Python for professionals and researchers. It features PLAN, MLP, Deep Learning training, and ENE (Eugenic NeuroEvolution) for genetic optimization, applicable to genetic algorithms or Reinforcement Learning (RL). The library includes data pre-processing, visualizations, model saving/loading, prediction, evaluation, training, and detailed or simplified memory management.
5
5
  Author: Hasan Can Beydili
6
6
  Author-email: tchasancan@gmail.com
@@ -1,6 +1,6 @@
1
- pyerualjetwork/__init__.py,sha256=Bb361xO4qf2P0ZPTQ_s7Oz2fz70cUFuixDWLCfuqUGs,2735
1
+ pyerualjetwork/__init__.py,sha256=60chdPHau08HC8CJnG_RStblGHTncKMntWNKDbfKitw,2733
2
2
  pyerualjetwork/activation_functions_cpu.py,sha256=qP_Ipi2-c5tyJ7Jb9gWJZCj2AgeOIzLBdoEqQOUXD-s,5885
3
- pyerualjetwork/activation_functions_cuda.py,sha256=tjizlWkpXlA5DR8yD5CGI1b6j2yCn8vdrMrUMm6_r8I,5491
3
+ pyerualjetwork/activation_functions_cuda.py,sha256=7ZN54w4VP0MtFh0LjAUHsuPNgVOxrKeqEwa_zNbRp4g,5699
4
4
  pyerualjetwork/data_operations_cpu.py,sha256=HemqiYfSdlQKTTYNzpCh_9lTtS3AimMI4DvqJBAGjGw,16186
5
5
  pyerualjetwork/data_operations_cuda.py,sha256=5zgyJGPjQuHyx6IHNkRwMguYhm-GcI6Hal49WNvw-bM,18536
6
6
  pyerualjetwork/ene_cpu.py,sha256=2y5__d-vx7t5Ajs4IPuNnQe8ULR39Km_KQFNIUnalGA,45167
@@ -14,13 +14,13 @@ pyerualjetwork/memory_operations.py,sha256=g24d-cDuUFc0fOEtk3AJe-z_EBctYV5S4cY1r
14
14
  pyerualjetwork/metrics_cpu.py,sha256=vbfMwS0ay2heMSa0GNo-ydLjQ8cfexbLwaREp4FKAtY,6081
15
15
  pyerualjetwork/metrics_cuda.py,sha256=PWyJyexeqlPKb09LAcF55JvhZVeXLCu3P_siYq5m2gg,5065
16
16
  pyerualjetwork/model_operations_cpu.py,sha256=Y0uPkLVbdodP7lC-fOPdja3RWi2J9z2rwWIS2pxzotU,20523
17
- pyerualjetwork/model_operations_cuda.py,sha256=9KfaO3NwvA-bwZqshYQwfc5e-4AYPp53EwFHMvDHS3I,21537
18
- pyerualjetwork/neu_cpu.py,sha256=4jjW9xIuB5WKJRMAR0BgkUra3OYERfUhehbqeYFgiIA,31197
19
- pyerualjetwork/neu_cuda.py,sha256=nK74JgfyJDbaPmSR1CmtZc_PaSKk0FeFmNcWHe5-8U0,32354
17
+ pyerualjetwork/model_operations_cuda.py,sha256=B6vNYmqvrEJ3ZMGE1RWeJYn3V-JCsXhCHvS-aX4bWuU,21254
18
+ pyerualjetwork/neu_cpu.py,sha256=X-AyTRSqBi29c3zxXO0nI2QRVZy8_UGR_nLkW06RCzE,31242
19
+ pyerualjetwork/neu_cuda.py,sha256=wrgFSCaQeF6b3Bu7teLjCaYVNT9rdU4mVk3tYSKuG54,32402
20
20
  pyerualjetwork/ui.py,sha256=JBTFYz5R24XwNKhA3GSW-oYAoiIBxAE3kFGXkvm5gqw,656
21
21
  pyerualjetwork/visualizations_cpu.py,sha256=StyD1Hl1Gt55EMqR6tO3yVJZdPyGkOgCnQ75Zn8K6J8,28252
22
22
  pyerualjetwork/visualizations_cuda.py,sha256=7lYrkOdrjwQGB3T4k_vI8UDxsm_TRjzaSSg9GhlNczs,28667
23
- pyerualjetwork-5.21b2.dist-info/METADATA,sha256=DZtpe6d-BdbHuvL8Ec02KK6SQKN0RzwBgR2Lo0DQ2Bg,8135
24
- pyerualjetwork-5.21b2.dist-info/WHEEL,sha256=2wepM1nk4DS4eFpYrW1TTqPcoGNfHhhO_i5m4cOimbo,92
25
- pyerualjetwork-5.21b2.dist-info/top_level.txt,sha256=BRyt62U_r3ZmJpj-wXNOoA345Bzamrj6RbaWsyW4tRg,15
26
- pyerualjetwork-5.21b2.dist-info/RECORD,,
23
+ pyerualjetwork-5.22.dist-info/METADATA,sha256=CHTMRdePRk7I3WKA44ihOPV24mcf-Qn_774FN7DIGP4,8133
24
+ pyerualjetwork-5.22.dist-info/WHEEL,sha256=2wepM1nk4DS4eFpYrW1TTqPcoGNfHhhO_i5m4cOimbo,92
25
+ pyerualjetwork-5.22.dist-info/top_level.txt,sha256=BRyt62U_r3ZmJpj-wXNOoA345Bzamrj6RbaWsyW4tRg,15
26
+ pyerualjetwork-5.22.dist-info/RECORD,,