radnn 0.1.4__py3-none-any.whl → 0.1.5__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.
@@ -0,0 +1,103 @@
1
+ import matplotlib.pyplot as plt # use the subpackage (a.k.a. namespace) with the alias "plt"
2
+ import numpy as np
3
+ from matplotlib import colors
4
+ from radnn.data import DataPreprocessingKind
5
+
6
+ # ====================================================================================================
7
+ class PlotDataset(object): # class CPlot: object
8
+ # --------------------------------------------------------------------------------------
9
+ # Constructor
10
+ def __init__(self, samples, labels
11
+ , label_descriptions=["orange tree", "olive tree"]
12
+ , colors=["darkorange", "darkseagreen"]
13
+ , x_label="Feature 1"
14
+ , y_label="Feature 2"
15
+ ):
16
+ # ................................................................
17
+ # // Fields \\
18
+ self.title = ""
19
+ self.samples = samples
20
+ self.labels = labels
21
+ self.label_descriptions = label_descriptions
22
+ self.colors = colors # # https://matplotlib.org/3.1.0/gallery/color/named_colors.html
23
+ self.x_label = x_label
24
+ self.y_label = y_label
25
+ # ................................................................
26
+
27
+ # --------------------------------------------------------------------------------------
28
+ def prepare(self, title, line_slope=None, line_intercept=None, limits_x=None, limits_y=None, preprocessed: DataPreprocessingKind | None = None):
29
+ self.title = title
30
+
31
+ # Two dimensional dataset for the scatter plot
32
+ nXValues = self.samples[:, 0]
33
+ nYValues = self.samples[:, 1]
34
+ nLabels = self.labels
35
+
36
+ oColorMap = colors.ListedColormap(self.colors)
37
+
38
+ fig, ax = plt.subplots(figsize=(8, 8))
39
+ plt.scatter(nXValues, nYValues, c=nLabels, cmap=oColorMap)
40
+
41
+ plt.title(self.title)
42
+ cb = plt.colorbar()
43
+ nLoc = np.arange(0, max(nLabels), max(nLabels) / float(len(self.colors)))
44
+ cb.set_ticks(nLoc)
45
+ oLegend = [ f"{i}:{x}" for i,x in enumerate(self.label_descriptions)]
46
+ cb.set_ticklabels(oLegend)
47
+
48
+ if (line_slope is not None):
49
+ x1 = np.min(nXValues)
50
+ y1 = line_slope * x1 + line_intercept;
51
+ x2 = np.max(nXValues)
52
+ y2 = line_slope * x2 + line_intercept;
53
+ oPlot1 = ax.plot([x1, x2], [y1, y2], 'r--', label="Decision line")
54
+ oLegend = plt.legend(loc="upper left", shadow=True, fontsize='x-large')
55
+ oLegend.get_frame().set_facecolor("lightyellow")
56
+
57
+ if preprocessed == DataPreprocessingKind.MIN_MAX_NORMALIZE:
58
+ ax.set_xlim((-0.05, 1.05))
59
+ ax.set_ylim((-0.05, 1.05))
60
+ if preprocessed == DataPreprocessingKind.STANDARDIZE:
61
+ ax.set_xlim((-4.05, 4.05))
62
+ ax.set_ylim((-4.05, 4.05))
63
+ else:
64
+ if limits_x is not None:
65
+ ax.set_xlim(limits_x[0], limits_x[1])
66
+ if limits_y is not None:
67
+ ax.set_ylim(limits_y[0], limits_y[1])
68
+
69
+ ax.set_xlabel(self.x_label)
70
+ ax.set_ylabel(self.y_label)
71
+
72
+ # plt.scatter(oDataset.Samples[:,0], oDataset.Samples[:,1])
73
+ # , t, 'r--', t, t**2, 'bs', t, t**3, 'g^')
74
+ return self
75
+ # --------------------------------------------------------------------------------------
76
+ def save(self, filename):
77
+ plt.savefig(filename, bbox_inches='tight')
78
+ return self
79
+ # --------------------------------------------------------------------------------------
80
+ def show(self):
81
+ plt.show()
82
+ # --------------------------------------------------------------------------------------
83
+
84
+
85
+ # ====================================================================================================
86
+
87
+ class CPlot(PlotDataset):
88
+ # --------------------------------------------------------------------------------------
89
+ def __init__(self, p_sTitle, p_nSamples, p_nLabels, p_sLabelDescriptions=["orange tree", "olive tree"]
90
+ , p_sColors=["darkorange", "darkseagreen"]
91
+ , p_sXLabel="Feature 1"
92
+ , p_sYLabel="Feature 2"
93
+ ):
94
+ super().__init__(p_nSamples, p_nLabels, p_sLabelDescriptions, p_sColors, p_sXLabel, p_sYLabel)
95
+ self.s_title = p_sTitle
96
+
97
+ # --------------------------------------------------------------------------------------
98
+ def Show(self, p_bIsMinMaxScaled=False, p_nLineSlope=None, p_nLineIntercept=None, p_nLimitsX=[-4, 4], p_nLimitsY=[-4, 4]):
99
+ if p_bIsMinMaxScaled:
100
+ self.prepare(self.s_title, p_nLineSlope, p_nLineIntercept, p_nLimitsX, p_nLimitsY, preprocessed=DataPreprocessingKind.MIN_MAX_NORMALIZE).show()
101
+ else:
102
+ self.prepare(self.s_title, p_nLineSlope, p_nLineIntercept, p_nLimitsX, p_nLimitsY).show()
103
+ # --------------------------------------------------------------------------------------
radnn/plots/plot_roc.py CHANGED
@@ -41,6 +41,7 @@ class PlotROC(object):
41
41
  self.title = title
42
42
  # --------------------------------------------------------------------------------------
43
43
  def prepare(self, true_threshold=0.5, figure_size=[6.00, 6.00], is_showing_grid=True):
44
+ plt.clf()
44
45
  plt.rcParams["figure.figsize"] = figure_size
45
46
  plt.rcParams["figure.autolayout"] = True
46
47
 
radnn/utils.py CHANGED
@@ -166,14 +166,13 @@ def print_options_float(precision=6):
166
166
  finally:
167
167
  np.set_printoptions(**original)
168
168
  # ----------------------------------------------------------------------------------------------------------------------
169
- def print_tensor(tensor: np.ndarray, title=None, format="%+.3f", axes_descr=[""]):
169
+ def print_tensor(tensor: np.ndarray, title=None, format="%+.3f", axes_descr=[""], is_simple=False):
170
170
  # ................................................
171
171
  def printElement(p_nElement, p_bIsScalar):
172
172
  if p_bIsScalar:
173
173
  print(format % p_nElement, end=" ")
174
174
  else:
175
175
  print(np.array2string(p_nElement, separator=",", formatter={'float': lambda x: format % x}), end=" ")
176
-
177
176
  # ................................................
178
177
  def strBoxLeft(p_nIndex, p_nCount):
179
178
  if (p_nIndex == 0):
@@ -194,11 +193,15 @@ def print_tensor(tensor: np.ndarray, title=None, format="%+.3f", axes_descr=[""]
194
193
 
195
194
  # ................................................
196
195
  def print_header(shape_of_tensor):
197
- print("-" * 70)
196
+ if not is_simple:
197
+ print("-" * 70)
198
198
  if title is None:
199
199
  print(f"shape:{shape_of_tensor}")
200
200
  else:
201
- print(f"{title} shape:{shape_of_tensor}")
201
+ if is_simple:
202
+ print(f"{title} ", end="")
203
+ else:
204
+ print(f"{title} shape:{shape_of_tensor}")
202
205
  # ................................................
203
206
  shape_of_tensor = tensor.shape
204
207
  rank_of_tensor = len(tensor.shape)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: radnn
3
- Version: 0.1.4
3
+ Version: 0.1.5
4
4
  Summary: Rapid Deep Neural Networks
5
5
  Author-email: "Pantelis I. Kaplanoglou" <pikaplanoglou@ihu.gr>
6
6
  License-Expression: MIT
@@ -1,23 +1,24 @@
1
- radnn/__init__.py,sha256=gybOduPiZV1_5qix7XJnpEIT_4UnGIN_eGSJgtfAgBU,533
1
+ radnn/__init__.py,sha256=l4r8WIDCPKjjAuyib32zzfASqpvs3E6Rd3yIsTzyGRM,603
2
2
  radnn/core.py,sha256=p3CXa192LhpvopTTJO3wPCJzUzKuH4KZSEzzOg1FIP0,11090
3
3
  radnn/errors.py,sha256=YiaXHWAGSijOyufTzOVqFvba4CxpMUxQDdQIfZS9YK0,2979
4
4
  radnn/ml_system.py,sha256=lTxMgs81TLjKxMGjB10RKD5TKUp9koDPLQSbpQmGINk,7681
5
- radnn/utils.py,sha256=HEpGEEbV7WF8kHDrv86nYfiCAMI2HrlG7uyMw9P-kpM,11254
5
+ radnn/utils.py,sha256=QcVFtESwBd9M-HNY20zBYL9YayrwuHQephLK_6-AadM,11366
6
6
  radnn/benchmark/__init__.py,sha256=GkUvz7p6KbebnXBvi3ITbzDPCGxOtg_e0VpmMt1D3IE,44
7
7
  radnn/benchmark/latency.py,sha256=waaRYuW0ySH82Isj9VaIor3AKQWMqyetVxQae4zm8SM,1205
8
8
  radnn/benchmark/vram.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
- radnn/data/__init__.py,sha256=K6RzprD9JZB5ZcgSddaZIlHRSY1BM2l-H4SHu8CSxyo,395
10
- radnn/data/custom_data_set.py,sha256=nRuEZdWMZr0AuVKjyV_nuRwQV_OELqapgOodMRxAFoE,4919
9
+ radnn/data/__init__.py,sha256=y4l-g0dq74vJbFpPkP7zLKEbuXjv97QcCcUtGQODLZQ,441
10
+ radnn/data/constants.py,sha256=yeJoWCQMc0wEGnzapE3XJM9ciMNEZfv5Qk6gjiC8ldA,357
11
+ radnn/data/custom_data_set.py,sha256=h-QZg1lBGq6oj-Z_mmkIiWI1s2vJXKMoEoWWbKKv25g,5493
11
12
  radnn/data/data_hyperparams.py,sha256=eOSii6eTjtNH0hfWdysWK7Tcsdx8eUgaFneSxTCmQig,2942
12
- radnn/data/dataset_base.py,sha256=S7BmNEwS3cNihW2vDl3L6VOJXKGJUtv59yi_OqwF8cw,7932
13
+ radnn/data/dataset_base.py,sha256=oqKGMmA1oxSoD28zLO_qm912ZHwO2z7smcoyzmWQt-Q,9294
13
14
  radnn/data/dataset_base_legacy.py,sha256=qbYQ3oEVdbje1p50eGgIt4kxhi6PnBOIs5tEGl8dLik,12148
14
15
  radnn/data/dataset_factory.py,sha256=ntfTKz4sIoFcpohytz-9HnHAyvcyfLJmjdaWBdSVZa4,5430
15
- radnn/data/errors.py,sha256=Aj0S0nSrAJG5VgnQVhxcFO7iHecPeJ2JNmH0AycIH3U,2086
16
+ radnn/data/errors.py,sha256=LD9WeTk4V63UjZkDC4R_DejOISv01AI0bRGyRP9TC98,2315
16
17
  radnn/data/sample_preprocessor.py,sha256=Pcbow4ZQX88s-nViaQ5Csp72DSy29aaAweVKXNqk5XQ,3254
17
- radnn/data/sample_set.py,sha256=6Fi-P_3dWgfJfxn7u9J8QCbtFwrrjYoNge7d8eePQ7c,14296
18
- radnn/data/sample_set_kind.py,sha256=RLgD9ZuW3x3NXaYjyP0j4fl-n7j6uV08JTGsOalYGyQ,6219
19
- radnn/data/sample_set_simple.py,sha256=FdMCb8nyY7vTQ_GveySZpQw7f5_INr6zJ_aIiSUrYSE,1516
20
- radnn/data/sequence_dataset.py,sha256=LKmOYz2CpDgL5qH8S32IxlaY8qC-PR3Hlr_mWzMDooo,5971
18
+ radnn/data/sample_set.py,sha256=NDvHdKshqVtBE44ZB_5iYBDyItuC6oP-HLNaU-csrCw,14296
19
+ radnn/data/sample_set_kind.py,sha256=h793DtOsnkBI_gTQq1yx3FB9RiggOV2tJJzySx55JbM,6404
20
+ radnn/data/sample_set_simple.py,sha256=nWfuBvvgcTouiRJXqnOO8P-ZTZVXJyTHIabQV9_ca9I,4496
21
+ radnn/data/sequence_dataset.py,sha256=t7eDcBn74EsKf-feWwLP6UkRAxjvTXChLlmv-CwBXJ4,5959
21
22
  radnn/data/structs/__init__.py,sha256=7XVuoBctqZWtDa_QBwhmUtTWbtkwdPIEyNfjKXSya9I,61
22
23
  radnn/data/structs/tree.py,sha256=ZVcP1hkxrLXNfmGHTb4Fk9kPmfmZebHfDfg9sYbBQAo,9774
23
24
  radnn/data_beta/__init__.py,sha256=IExy6eV9QSr3b2LaI3cND7P4W-kPHivHMleJsKETh00,405
@@ -49,6 +50,7 @@ radnn/images/colors.py,sha256=l6caSV2a_TURl1qHYKdehQDk0MCVMz-614OuVx-wnsg,1248
49
50
  radnn/images/image_processor.py,sha256=ZSDclPiQV7r0v3yB6fh-29mvQi8r1Th1QY-6-O_LN8U,20077
50
51
  radnn/images/transforms.py,sha256=-PH9b4Uo97OzFuYGMaQJ1FDyg73Kbx0K8jphnn_t47I,1125
51
52
  radnn/learn/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
53
+ radnn/learn/constants.py,sha256=YJt4pSkjC4vBUaq1XsW4zlYupVn0RjE5oiS64HjXSyc,563
52
54
  radnn/learn/keras/__init__.py,sha256=gMSICV_mtVTDscYqWGh0jixED93HP0zf_lQrQp3Gnq4,234
53
55
  radnn/learn/keras/keras_best_state_saver.py,sha256=RzAPRSMpDnkbrzJp_TApbJ_k0qN7_cW9BkU9NgqYBWs,983
54
56
  radnn/learn/keras/keras_learning_algorithm.py,sha256=pOhnYXlcMqYnhqAU7JqZYnuYfeNPtkE5NFszGQs6lCc,1343
@@ -57,7 +59,7 @@ radnn/learn/keras/keras_optimization_combo.py,sha256=gvkAR40xxhIKsQMXs_qLStINPsk
57
59
  radnn/learn/torch/__init__.py,sha256=92a_zcKC056zuxDc_nxFUr86xNId1eU_Y3bITljOjhc,177
58
60
  radnn/learn/torch/gradient_descent_method.py,sha256=bLAwofz_XjgIv-Gl8BhmHRB_5d4EPyeamH3PnDH5dgI,9587
59
61
  radnn/learn/torch/lr_schedulers.py,sha256=jfmZigI51IOgBU47t8-Dz6EjuNUbdjNxls6UMpzka_0,7088
60
- radnn/learn/torch/ml_model_freezer.py,sha256=Y-uF0ckRvftFQqQaPDq1-e0wgSnpvq8BznzVdZWDeQk,9880
62
+ radnn/learn/torch/ml_model_freezer.py,sha256=D18viSHuoBi6ieA1ONWeSCehg2-eY7gCb9ElNXS8UfE,9882
61
63
  radnn/learn/torch/ml_trainer.py,sha256=0RKzsSYbbh8goh5eA3wSKnBtMx5uVOT16uxqPlr7qPI,19677
62
64
  radnn/learn/torch/losses/__init__.py,sha256=zyogstFmiz302eOij4S8yUgurB8zl845LGwPiraWZGQ,26
63
65
  radnn/learn/torch/losses/rmse.py,sha256=9U1WeSzKhwtJApq5sLeVlH39ZcQU3ldAlA45Q6_-u4s,280
@@ -70,14 +72,15 @@ radnn/models/cnn/cnn_stem_setup.py,sha256=8NBypzjTRxcn2QsLO1IuKpjc8h4mUYDz-HfKi4
70
72
  radnn/models/torch/__init__.py,sha256=ItpIWBU34UheJk7NFIMeBJeimuYH9tM0NU1eiRODzo4,155
71
73
  radnn/models/torch/model_utils.py,sha256=yjKqF-JWXgSKyzvQMG924oN-j808tiCm57ceG7gwDv4,5539
72
74
  radnn/models/torch/torch_model_build_adapter.py,sha256=DoHPX0Ki_RkTY1bqJaeh0ayaLVDAtjKPTkki4OE41GA,1589
73
- radnn/plots/__init__.py,sha256=hhDpFemdOuEWlvxDFhWt6Cqxzd_Hj48kHUAgekTQh3c,459
75
+ radnn/plots/__init__.py,sha256=OoRZa1oGCVpOUj5ij00MAE9mC80JHkf6Ktx6cYUGyrM,497
74
76
  radnn/plots/plot_auto_multi_image.py,sha256=MH7Qo7Fv3qFj2nM58NSrkLMgbvfB-ZRukE4uthswjvM,5038
75
77
  radnn/plots/plot_confusion_matrix.py,sha256=9huwxDnJ4-wteHv44je_ls-vkaShEiJYcqXRAivTIVg,5920
76
78
  radnn/plots/plot_function.py,sha256=69o0L9yygOnfVjlZDpglEnNUD0cqWaqEFWvB8ahBtiU,2958
77
- radnn/plots/plot_histogram_of_classes.py,sha256=wnsD3FMJ8yJgfULTYPfXxtpNACXeo3tc8NBoq3RhD8A,5837
79
+ radnn/plots/plot_histogram_of_classes.py,sha256=NMtNmBto89sEho_BDtQlQvOtJoRP9h0Vpe83uZBUdhs,2999
78
80
  radnn/plots/plot_learning_curve.py,sha256=MdIo92fgaQ2LM4em-rTfNeC39qop-qYBjZpmqd49dLA,4076
81
+ radnn/plots/plot_legacy.py,sha256=lidsisKrcl7DQaVZwU5UHrwRjyPSU0FF3PrT-cz10jc,4649
79
82
  radnn/plots/plot_multi_scatter.py,sha256=B5JzMPKwZAWSFMrPuSULAvlUCo49QRBMU9oe0_me2FI,5042
80
- radnn/plots/plot_roc.py,sha256=LisQZ4XFCoHHT9kOJtgKMu-6F1zdT4SKJ_lmROZEz94,3735
83
+ radnn/plots/plot_roc.py,sha256=FZidubveMydqfGs7vH_2ZecfZL85CcgdagNadHuNzBw,3750
81
84
  radnn/plots/plot_visualize_dataset2d.py,sha256=edF22VoE67djYhYcc6ciplk8BErl-6VmZV9DTYIfb8o,4383
82
85
  radnn/plots/plot_voronoi_2d.py,sha256=mxGAVfnDVCBn3-soYlD-LS32meeLpmfibIUZB-Tier0,4649
83
86
  radnn/stats/__init__.py,sha256=o0uaqIPrlvCFiZEDRowZaVrSYg3m2etkHpBttNySDeU,47
@@ -108,8 +111,8 @@ radnn/system/threads/thread_safe_string_collection.py,sha256=vdRMvwJ8CcLmsJ1uild
108
111
  radnn/system/threads/thread_worker.py,sha256=5KANBBHwnyaMvjyelBT1eyZCzRtH7MNZiHUhN1Xl1BY,3466
109
112
  radnn/test/__init__.py,sha256=XL9SgTJ6bGm3b0tcU3CroenP9rBm5XpDJozFGUv0UkQ,35
110
113
  radnn/test/tensor_hash.py,sha256=Jh4hSaSOLzSWF1_UI0ZLWL6zdi2SbswM1GNEuuFIYso,4203
111
- radnn-0.1.4.dist-info/licenses/LICENSE.txt,sha256=NMbnQdAQ2kWWQp2_8Sv2HG1p3jNvrPjYFSixnxPA3uE,1106
112
- radnn-0.1.4.dist-info/METADATA,sha256=-IdRrO_MDXRMYxbhaF8HwZcR1R9L03OHpDhs2HvbMJw,1253
113
- radnn-0.1.4.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
114
- radnn-0.1.4.dist-info/top_level.txt,sha256=FKlLIm6gRAeZlRzs-HCBJAB1q9ELJ7MgaL-qqFuPo6M,6
115
- radnn-0.1.4.dist-info/RECORD,,
114
+ radnn-0.1.5.dist-info/licenses/LICENSE.txt,sha256=NMbnQdAQ2kWWQp2_8Sv2HG1p3jNvrPjYFSixnxPA3uE,1106
115
+ radnn-0.1.5.dist-info/METADATA,sha256=qD08vielf__h6f0r2WTvJjrO4t_nVANtZu8ZZtNd3wk,1253
116
+ radnn-0.1.5.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
117
+ radnn-0.1.5.dist-info/top_level.txt,sha256=FKlLIm6gRAeZlRzs-HCBJAB1q9ELJ7MgaL-qqFuPo6M,6
118
+ radnn-0.1.5.dist-info/RECORD,,
File without changes