radnn 0.0.6__py3-none-any.whl → 0.0.7__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.
radnn/ml_system.py ADDED
@@ -0,0 +1,96 @@
1
+ import os
2
+ import random
3
+ import numpy as np
4
+ import importlib
5
+
6
+ class MLSystem(object):
7
+ IS_USING_TENSORFLOW = False
8
+ IS_USING_TORCH = False
9
+
10
+ # --------------------------------------------------------------------------------------
11
+ _instance = None
12
+ @classmethod
13
+ def Instance(cls):
14
+ if cls._instance is None:
15
+ cls._instance = cls()
16
+ mlsys = cls._instance
17
+ return cls._instance
18
+ # --------------------------------------------------------------------------------------
19
+ @property
20
+ def is_tensorflow(self):
21
+ return self.is_tensorflow_installed and (not cls.IS_USING_TORCH) and (cls.IS_USING_TENSORFLOW)
22
+ # --------------------------------------------------------------------------------------
23
+ @property
24
+ def is_torch(self):
25
+ return self.is_torch_installed and (cls.IS_USING_TORCH)
26
+ # --------------------------------------------------------------------------------------
27
+ def __init__(self):
28
+ self._is_random_seed_initialized = False
29
+ self._filesys = None
30
+ self.switches = dict()
31
+ self.switches["IsDebuggable"] = False
32
+
33
+ self.is_tensorflow_installed = False
34
+ self.is_torch_installed = False
35
+ self.is_opencv_installed = False
36
+ # --------------------------------------------------------------------------------------
37
+ def use_tensorflow(self):
38
+ self.IS_USING_TENSORFLOW = True
39
+ self.IS_USING_TORCH = False
40
+ # --------------------------------------------------------------------------------------
41
+ def use_torch(self):
42
+ self.IS_USING_TORCH = True
43
+ self.IS_USING_TENSORFLOW = False
44
+ # --------------------------------------------------------------------------------------
45
+ @property
46
+ def filesys(self):
47
+ return self._filesys
48
+ # ............................
49
+ @filesys.setter
50
+ def filesys(self, value):
51
+ self._filesys = value
52
+ # --------------------------------------------------------------------------------------
53
+ # We are seeding the number generators to get some amount of determinism for the whole ML training process.
54
+ # For Tensorflow it is not ensuring 100% deterministic reproduction of an experiment on the GPU.
55
+ def random_seed_all(self, seed, is_done_once=False):
56
+ bContinue = True
57
+ if is_done_once:
58
+ bContinue = (not self._is_random_seed_initialized)
59
+
60
+ if bContinue:
61
+ random.seed(seed)
62
+ os.environ['PYTHONHASHSEED'] = str(seed)
63
+ np.random.seed(seed)
64
+ if mlsys.is_tensorflow:
65
+ import tensorflow as tf
66
+ tf.compat.v1.reset_default_graph()
67
+ tf.random.set_seed(seed)
68
+ tf.keras.utils.set_random_seed(seed)
69
+ elif mlsys.is_torch:
70
+ import torch
71
+ torch.manual_seed(seed)
72
+ # GPU and multi-GPU
73
+ torch.cuda.manual_seed(seed)
74
+ torch.cuda.manual_seed_all(seed)
75
+ # For GPU determinism
76
+ torch.backends.cudnn.deterministic = True
77
+ torch.backends.cudnn.benchmark = False
78
+
79
+ self._is_random_seed_initialized = True
80
+ print("(>) Random seed set to %d" % seed)
81
+ # --------------------------------------------------------------------------------------
82
+
83
+
84
+ # ----------------------------------------------------------------------------------------------------------------------
85
+ def is_tensorflow_installed():
86
+ bIsInstalled = importlib.util.find_spec("tensorflow") is not None
87
+ if not is_tensorflow_installed:
88
+ bIsInstalled = importlib.util.find_spec("tensorflow-gpu") is not None
89
+ return bIsInstalled
90
+ # ----------------------------------------------------------------------------------------------------------------------
91
+
92
+
93
+ mlsys: MLSystem = MLSystem.Instance()
94
+ mlsys.is_tensorflow_installed = is_tensorflow_installed()
95
+ mlsys.is_torch_installed = importlib.util.find_spec("torch") is not None
96
+ mlsys.is_opencv_installed = importlib.util.find_spec("cv2") is not None
radnn/plots/__init__.py CHANGED
@@ -2,4 +2,5 @@ from .plot_confusion_matrix import PlotConfusionMatrix
2
2
  from .plot_learning_curve import PlotLearningCurve
3
3
  from .plot_roc import PlotROC
4
4
  from .plot_voronoi_2d import PlotVoronoi2D
5
- from .plot_multi_scatter import MultiScatterPlot
5
+ from .plot_multi_scatter import MultiScatterPlot
6
+ from .plot_auto_multi_image import AutoMultiImagePlot
@@ -0,0 +1,112 @@
1
+ # ......................................................................................
2
+ # MIT License
3
+
4
+ # Copyright (c) 2022-2025 Pantelis I. Kaplanoglou
5
+
6
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ # of this software and associated documentation files (the "Software"), to deal
8
+ # in the Software without restriction, including without limitation the rights
9
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ # copies of the Software, and to permit persons to whom the Software is
11
+ # furnished to do so, subject to the following conditions:
12
+
13
+ # The above copyright notice and this permission notice shall be included in all
14
+ # copies or substantial portions of the Software.
15
+
16
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ # SOFTWARE.
23
+
24
+ # ......................................................................................
25
+
26
+ import numpy as np
27
+ import matplotlib.pyplot as plt
28
+
29
+ class AutoMultiImagePlot(object):
30
+ def __init__(self, min=None, max=None, title=None):
31
+ self.rows = []
32
+ self.row_count = 0
33
+ self.row_titles = []
34
+ self.current_row = -1
35
+ self.row_col_count = dict()
36
+ self.max_col_count = 0
37
+ self.min = min
38
+ self.max = max
39
+ self.title = title
40
+
41
+ def add_row(self, row_title=None):
42
+ self.current_row = self.row_count
43
+ self.rows.append([])
44
+ self.row_count = len(self.rows)
45
+ self.row_titles.append(row_title)
46
+
47
+ def add_column(self, images, image_title=None, color_map=None, aspect=None, extent=None):
48
+ oRowColumns = self.rows[self.current_row]
49
+ dImage = {"image": images, "title": image_title
50
+ , "cmap": color_map, "aspect": aspect
51
+ , "extend": extent}
52
+
53
+ oRowColumns.append(dImage)
54
+ self.rows[self.current_row] = oRowColumns
55
+ nColCount = len(oRowColumns)
56
+
57
+ self.row_col_count[self.current_row] = nColCount
58
+ if nColCount > self.max_col_count:
59
+ self.max_col_count = nColCount
60
+
61
+ def prepare(self, title=None, figure_size=(15, 6), restrict_columns=None):
62
+
63
+ nColumns = restrict_columns
64
+ if nColumns is None:
65
+ nColumns = self.max_col_count
66
+ fig, oSubplotGrid = plt.subplots(nrows=self.row_count, ncols=nColumns
67
+ , figsize=figure_size
68
+ , subplot_kw={'xticks': [], 'yticks': []})
69
+ bIsSingleRow = self.row_count == 1
70
+ if bIsSingleRow:
71
+ oSubplotGrid = oSubplotGrid[np.newaxis, ...]
72
+
73
+ if title is None:
74
+ title = self.title
75
+ fig.suptitle(title)
76
+
77
+ for nRowIndex, oRowColumns in enumerate(self.rows):
78
+ if len(oRowColumns) > 0:
79
+ sRowTitle = self.row_titles[nRowIndex]
80
+ nImageCount = len(oRowColumns)
81
+ nIncr = nImageCount // nColumns
82
+ nImageIndex = 0
83
+ for nColIndex in range(nColumns):
84
+ bMustPlot = True
85
+ if (nIncr == 0) and (nColIndex > 0):
86
+ bMustPlot = False
87
+
88
+ if bMustPlot:
89
+ dImage = oRowColumns[nImageIndex]
90
+ oSubPlot = oSubplotGrid[nRowIndex, nColIndex]
91
+ oSubPlot.title.set_text(dImage["title"])
92
+ oSubPlot.imshow(dImage["image"], cmap=dImage["cmap"],
93
+ aspect=dImage["aspect"], extent=dImage["extend"],
94
+ vmin=self.min, vmax=self.max
95
+ )
96
+ if nColIndex == 0:
97
+ oSubPlot.text(0.0, 0.5, sRowTitle, transform=oSubPlot.transAxes,
98
+ horizontalalignment='right', verticalalignment='center',
99
+ fontsize=9, fontweight='bold')
100
+ nImageIndex += nIncr
101
+
102
+ return self
103
+
104
+ # --------------------------------------------------------------------------------------
105
+ def save(self, filename):
106
+ plt.savefig(filename, bbox_inches='tight')
107
+ return self
108
+
109
+ # --------------------------------------------------------------------------------------
110
+ def show(self):
111
+ plt.show()
112
+ # --------------------------------------------------------------------------------------
@@ -51,7 +51,10 @@ class JSONFile(FileObject):
51
51
  filename = self._useFileName(filename)
52
52
 
53
53
  if obj is not None:
54
- sJSON = json.dumps(obj, default=lambda o: o.__dict__, sort_keys=is_sorted_keys, indent=4)
54
+ if isinstance(obj, dict):
55
+ sJSON = json.dumps(obj, sort_keys=is_sorted_keys, indent=4)
56
+ else:
57
+ sJSON = json.dumps(obj, default=lambda o: obj.__dict__, sort_keys=is_sorted_keys, indent=4)
55
58
  with open(filename, "w") as oFile:
56
59
  oFile.write(sJSON)
57
60
  oFile.close()
@@ -27,13 +27,10 @@ from radnn.core import system_name
27
27
  from radnn.system.filestore import FileStore
28
28
  from radnn.system.files import JSONFile
29
29
 
30
-
31
-
32
-
33
30
  # =======================================================================================================================
34
31
  class FileSystem(object):
35
32
  # --------------------------------------------------------------------------------------------------------
36
- def __init__(self, config_folder="MLConfig", model_folder="MLModels", dataset_folder="MLData", must_exist=False, setup_filename="*auto*"):
33
+ def __init__(self, config_folder="MLConfig", model_folder="MLModels", dataset_folder="MLData", must_exist=False, setup_filename="*auto*", is_custom_setup=False):
37
34
  '''
38
35
  Initializes the file system settings for an experiment
39
36
  :param config_folder: The folder that contains the experiment hyperparameter files.
@@ -42,7 +39,6 @@ class FileSystem(object):
42
39
  :param setup_filename: The filename of the setup file.
43
40
  :param must_exist: False: Auto-creates the directories on the file system | True: Raises an error if it does not exist.
44
41
  '''
45
-
46
42
  self.setup_filename = setup_filename
47
43
  if self.setup_filename == "*auto*":
48
44
  self.setup_filename = system_name() + ".fsys"
@@ -51,7 +47,7 @@ class FileSystem(object):
51
47
  self.model_groups = []
52
48
 
53
49
  dSetup = None
54
- if self.setup_filename is not None:
50
+ if (self.setup_filename is not None) and (not is_custom_setup):
55
51
  if os.path.exists(self.setup_filename):
56
52
  oFile = JSONFile(self.setup_filename)
57
53
  dSetup = oFile.load()
radnn/utils.py ADDED
@@ -0,0 +1,89 @@
1
+ import numpy as np
2
+
3
+
4
+ def print_tensor(tensor, title=None, format="%+.3f", axes_descr=["Sample"]):
5
+ # ................................................
6
+ def printElement(p_nElement, p_bIsScalar):
7
+ if p_bIsScalar:
8
+ print(format % p_nElement, end=" ")
9
+ else:
10
+ print(np.array2string(p_nElement, separator=",", formatter={'float': lambda x: format % x}), end=" ")
11
+
12
+ # ................................................
13
+ def strBoxLeft(p_nIndex, p_nCount):
14
+ if (p_nIndex == 0):
15
+ return "┌ "
16
+ elif (p_nIndex == (p_nCount - 1)):
17
+ return "└ "
18
+ else:
19
+ return "│ "
20
+
21
+ # ................................................
22
+ def strBoxRight(p_nIndex, p_nCount):
23
+ if (p_nIndex == 0):
24
+ return "┐ "
25
+ elif (p_nIndex == (p_nCount - 1)):
26
+ return "┘ "
27
+ else:
28
+ return "│ "
29
+
30
+ # ................................................
31
+
32
+ if len(tensor.shape) == 3:
33
+ tensor = tensor[np.newaxis, ...]
34
+ elif len(tensor.shape) == 2:
35
+ tensor = tensor[np.newaxis, ..., np.newaxis]
36
+ elif len(tensor.shape) == 5:
37
+ tensor = tensor[..., np.newaxis]
38
+ else:
39
+ raise Exception("Supported tensors are rank 2 to rank 5")
40
+
41
+ nSampleIndex = 0
42
+ nCount, nGridRows, nGridCols = tensor.shape[0:3]
43
+ nSliceCoordDigits = len(str(nGridRows))
44
+ if len(str(nGridCols)) > nSliceCoordDigits:
45
+ nSliceCoordDigits = len(str(nGridCols))
46
+
47
+ bIsGridOfTensors = (len(tensor.shape) == 6)
48
+ if bIsGridOfTensors:
49
+ nWindowRows, nWindowCols = tensor.shape[3:5]
50
+
51
+ bIsScalar = (tensor.shape[-1] == 1)
52
+
53
+ nSpaces = nSliceCoordDigits * 2 + 5
54
+ sSliceHeaders = ["X" + " " * (nSpaces - 3) + "= ",
55
+ " %" + str(nSliceCoordDigits) + "d" ",%" + str(nSliceCoordDigits) + "d ",
56
+ " " * nSpaces]
57
+
58
+ print("-" * 70)
59
+ if title is None:
60
+ print(f"shape:{tensor.shape}")
61
+ else:
62
+ print(f"{title} shape:{tensor.shape}")
63
+ while nSampleIndex < nCount:
64
+ print(f" {axes_descr[0]}:#{nSampleIndex}")
65
+ for nRow in range(0, nGridRows):
66
+ if bIsGridOfTensors:
67
+ for nY in range(nWindowRows):
68
+ for nCol in range(0, nGridCols):
69
+ if (nY == 0):
70
+ print(sSliceHeaders[0] + strBoxLeft(nY, nWindowRows), end="")
71
+ elif (nY == 1):
72
+ sBaseStr = sSliceHeaders[1] % (nRow, nCol)
73
+ print(sBaseStr + strBoxLeft(nY, nWindowRows), end="")
74
+ else:
75
+ print(sSliceHeaders[2] + strBoxLeft(nY, nWindowRows), end="")
76
+ for nX in range(nWindowCols):
77
+ printElement(tensor[nSampleIndex, nRow, nCol, nY, nX, ...], bIsScalar)
78
+
79
+ print(strBoxRight(nY, nWindowRows), end="")
80
+ print("")
81
+ print("")
82
+ else:
83
+ print(strBoxLeft(nRow, nGridRows), end="")
84
+ for nCol in range(0, nGridCols):
85
+ printElement(tensor[nSampleIndex, nRow, nCol, ...], bIsScalar)
86
+ print(strBoxRight(nRow, nGridRows))
87
+ print("." * 60)
88
+ nSampleIndex += 1
89
+ # -----------------------------------------------------------------------------
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: radnn
3
- Version: 0.0.6
3
+ Version: 0.0.7
4
4
  Summary: Rapid Deep Neural Networks
5
5
  Author-email: "Pantelis I. Kaplanoglou" <pikaplanoglou@ihu.gr>
6
6
  License: MIT License
@@ -45,7 +45,7 @@ Description-Content-Type: text/markdown
45
45
  License-File: LICENSE.txt
46
46
  Requires-Dist: numpy>=1.26.4
47
47
  Requires-Dist: matplotlib>=3.8.4
48
- Requires-Dist: pandas>=2.2.2
48
+ Requires-Dist: pandas>=2.2.1
49
49
  Requires-Dist: scikit-learn>=1.4.2
50
50
 
51
51
  # radnn - Rapid Deep Neural Networks
@@ -0,0 +1,53 @@
1
+ radnn/__init__.py,sha256=5uPiqiHDaYdsGupS0bxtGQ1SxcaxiupuprGmPP912zE,322
2
+ radnn/core.py,sha256=c60Lv2osyy3S6IxYIfbMSC9QMwnyT8qPED2xy_UnM24,3399
3
+ radnn/errors.py,sha256=upA3Afpvrkxexf956PwITHB-fR_V2n2k4Jn8HaZcpm8,150
4
+ radnn/ml_system.py,sha256=YWvYd5E-DEhiLZRCcjkFAZp-s1eZgmLNkxScE9RHETE,3879
5
+ radnn/utils.py,sha256=Q2nGUgyTGrhs0vxEmHfEZffWb7JBewmiygcHRaWw1W8,3100
6
+ radnn/data/__init__.py,sha256=09OkpdAe59yJH74DuQrxLtCiiNXgX6E3F2MKjzz8Cns,117
7
+ radnn/data/dataset_base.py,sha256=3b8UaJFBiN0cY8C9uZKFzRt0g_4Q_EZgVEKWgsAA4t8,15181
8
+ radnn/data/image_dataset.py,sha256=REGEomCmt0IFcjxYWtziELJFBoVnfR_TDFtct3IGR8U,4520
9
+ radnn/data/sample_set.py,sha256=rvRtS7EqLFVF4Hf6qmIuxE-fatFiqWbETnh5RWqVj5E,6685
10
+ radnn/data/sequence_dataset.py,sha256=DZAFgatzpf86nI62TJV5limYP3dP_z30UgWV2dYTDgc,6209
11
+ radnn/data/preprocess/__init__.py,sha256=6JTaWzzeXAbIXkH8O9JDawtObutCyXQjHEZdlofSics,74
12
+ radnn/data/preprocess/normalizer.py,sha256=7ZD1Z2_nW8KAG7cJ1RCYn-TMzVcW7dqWLTAjSPzMXo8,5444
13
+ radnn/data/preprocess/standardizer.py,sha256=tzH3aJ8seTw-UwxnAb0Z6eAkW5iPu1c12_Kenuv7X2Q,5019
14
+ radnn/evaluation/__init__.py,sha256=7dXDyJfOpSAr7G8jfDofsW4YEHNElCTTyMXuLCtpoOI,59
15
+ radnn/evaluation/evaluate_classification.py,sha256=Iiv0aZcIEzVMg8BNNxyNzl7g23SdMiENQxeEKep8Cpg,5497
16
+ radnn/experiment/__init__.py,sha256=8gxrFS4bG7rg2kgrDEhemJgDbO-5KhBYc4owJZ-S--k,247
17
+ radnn/experiment/ml_experiment.py,sha256=FPxOlzNLyDEqFBAyCc7zMrc26pQwr5grwbMCBsL89L8,17861
18
+ radnn/experiment/ml_experiment_config.py,sha256=YFLaSpz8UPs_JZC_hPkZAUOfelLmmr1cAlgRfbL3TEs,9785
19
+ radnn/experiment/ml_experiment_env.py,sha256=vF5sDLzIyLwme82VI4aKgmRxly-31THZyEc0dFof9dg,11206
20
+ radnn/experiment/ml_experiment_store.py,sha256=qeujLZJ-qGoBlyib3BukT4PBiioaPm4L1X24aXQ7_yg,398
21
+ radnn/learn/__init__.py,sha256=gF-5pD1OxrxhOeO7G7wbpr37LRjGkT71PY78Li3bBJU,252
22
+ radnn/learn/keras_learning_rate_scheduler.py,sha256=l0c53dtq1W5oclXDLxXzUlmBG_hzO-19EFRw3518PJs,1156
23
+ radnn/learn/keras_optimization_algorithm.py,sha256=ff3S_3CJ2t0N4_TZiGDpiAhExquRsqAGZDc42werGJo,1686
24
+ radnn/learn/learning_algorithm.py,sha256=dRr3QWvY2kXIaEADKTFhEjLw8w99rv4HcgKk-sQ8-d4,1420
25
+ radnn/learn/state/__init__.py,sha256=zExYBp7mkQlzDZX3jnzYa5piwOEFxUwe6ZvKI6IiE6o,117
26
+ radnn/learn/state/keras_best_state_saver.py,sha256=ep9QP7bZqmN8XmSzUpRXuBh6ccrbhFdFL4p5c3pg3MA,883
27
+ radnn/plots/__init__.py,sha256=dVd7QDrkD_fBUag4Kz3yTnPvBxaBgpDt16bbbNlqLKw,286
28
+ radnn/plots/plot_auto_multi_image.py,sha256=0-Bmk3aqeO6AzxC2GEycsx6Wp0sByVZdX4NUp-_OnYA,4507
29
+ radnn/plots/plot_confusion_matrix.py,sha256=KWW5k7-gaLPXO4oQBnzwAwgI-rvPOmqw8uiZbFlmU5o,2625
30
+ radnn/plots/plot_learning_curve.py,sha256=tgx3vAm4rg5qScqxLQ2T82BqrRWjiYaIKgLQp5Y19cQ,3480
31
+ radnn/plots/plot_multi_scatter.py,sha256=-VgSwi7knYTNrdW86RGon0MZ_r0JDoiWP9F_gWIvTuo,4797
32
+ radnn/plots/plot_roc.py,sha256=iyOnhux2qFEs7W-szEOCg2VCkcnBEaOJxZkWWYuSnCQ,3493
33
+ radnn/plots/plot_voronoi_2d.py,sha256=Kq3ZaLhLaFHQAurhFKNy7NNuIm3RArCk_WxPT8Ftxek,4409
34
+ radnn/system/__init__.py,sha256=uJLg56njcLtaRO0Kyudat055DGxqWsLMvrn9P8_Rt6A,119
35
+ radnn/system/filestore.py,sha256=gNESaiJNwdrFbkzcbkSv-O4V8vrBagOSR90WcFueNsA,8977
36
+ radnn/system/filesystem.py,sha256=Q9eydbKF2syFax6D82kgcEaj6_h-rVgxLAs_6mm2JIc,5566
37
+ radnn/system/tee_logger.py,sha256=WcyIJiW851PP6Jk7SyCHj63BEt7HnWa5-GJtw1CjGHE,2629
38
+ radnn/system/files/__init__.py,sha256=u2oGHNKM362JwqrDgwmWTAiisL067h6H9uu-d0iTBks,169
39
+ radnn/system/files/csvfile.py,sha256=9uKqmCdqLAKomANejcSruHle1r3gVdByQb1I2otLcMs,2246
40
+ radnn/system/files/fileobject.py,sha256=qT9qzpH6YFSIzaKfILxhpaQ1P2o2tqRh9J5J2L_Kp8Y,3851
41
+ radnn/system/files/imgfile.py,sha256=HxvvittOUG1mmIp-Bg8vHnLPtRYD-N4nE86G0Rcys6M,2242
42
+ radnn/system/files/jsonfile.py,sha256=1IgfK0j58RjvkV7pw7Z5oR49W071OmsMceX7F4w0MZw,3291
43
+ radnn/system/files/picklefile.py,sha256=0BFiYzr6BbGWMXyQCMjYHa_GlW8nEZ95CQtn7lpH254,5526
44
+ radnn/system/files/textfile.py,sha256=r7FZ1pdFGYxKrQ_kgkEK35GIqRU8k_MjdB0OrDd5m0o,2891
45
+ radnn/system/hosts/__init__.py,sha256=k2gkMJhe96Nf-V2ex6jZqmCRX9vA_K6gFB8J8Ii9ahc,261
46
+ radnn/system/hosts/colab_host.py,sha256=tAuLn9gTkX9cCSEmm7sG1JmCtNIgFlASwBt2olHUSe4,2434
47
+ radnn/system/hosts/linux_host.py,sha256=TZ-5JEZV0WNEB5trTbRWM0REhpuK5oYxoLodKKqhm9s,57
48
+ radnn/system/hosts/windows_host.py,sha256=u4IvgfFoKWdrFy0hYG__AoxfEJYHF4-ISNXTCJ5uN8I,2257
49
+ radnn-0.0.7.dist-info/LICENSE.txt,sha256=vYtt_GDvm_yW65X9YMBOOu8Vqc9SAvqH94TbfBc2ckU,1106
50
+ radnn-0.0.7.dist-info/METADATA,sha256=nTJMpLFSrb6hQc9wbr_Zopmq3Ute5OE0i8Ey0NWoy7g,2861
51
+ radnn-0.0.7.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
52
+ radnn-0.0.7.dist-info/top_level.txt,sha256=FKlLIm6gRAeZlRzs-HCBJAB1q9ELJ7MgaL-qqFuPo6M,6
53
+ radnn-0.0.7.dist-info/RECORD,,
@@ -1,33 +0,0 @@
1
- radnn/__init__.py,sha256=9CEr23hNkWNU-R14QMatDBvWQG0oHNjFIBNT23Mfe2M,171
2
- radnn/core.py,sha256=cWGl_B3bHASEDdZHgDKN9CwGo7-TFjj3y2YD-Ei4bD4,2828
3
- radnn/evaluation/__init__.py,sha256=7dXDyJfOpSAr7G8jfDofsW4YEHNElCTTyMXuLCtpoOI,59
4
- radnn/evaluation/evaluate_classification.py,sha256=wacQ_02loI2ApOKrUIDTKqqrwi0_TpUZJQfTpJ6rtag,5497
5
- radnn/experiment/__init__.py,sha256=8gxrFS4bG7rg2kgrDEhemJgDbO-5KhBYc4owJZ-S--k,247
6
- radnn/experiment/ml_experiment_config.py,sha256=MuFb4sY4kgCwxtJGmpOace4eTopy7mVLg3IDCpy6evI,8547
7
- radnn/experiment/ml_experiment_env.py,sha256=I54WILYjCJf9P133dFgOMsXGxkftlU8DcmwXDnBW930,11151
8
- radnn/plots/__init__.py,sha256=S3nGBBeCcaJl-RX03AWLpJXF8Ac6hnksrBPL40Nlbso,231
9
- radnn/plots/plot_confusion_matrix.py,sha256=KWW5k7-gaLPXO4oQBnzwAwgI-rvPOmqw8uiZbFlmU5o,2625
10
- radnn/plots/plot_learning_curve.py,sha256=tgx3vAm4rg5qScqxLQ2T82BqrRWjiYaIKgLQp5Y19cQ,3480
11
- radnn/plots/plot_multi_scatter.py,sha256=-VgSwi7knYTNrdW86RGon0MZ_r0JDoiWP9F_gWIvTuo,4797
12
- radnn/plots/plot_roc.py,sha256=iyOnhux2qFEs7W-szEOCg2VCkcnBEaOJxZkWWYuSnCQ,3493
13
- radnn/plots/plot_voronoi_2d.py,sha256=Kq3ZaLhLaFHQAurhFKNy7NNuIm3RArCk_WxPT8Ftxek,4409
14
- radnn/system/__init__.py,sha256=uJLg56njcLtaRO0Kyudat055DGxqWsLMvrn9P8_Rt6A,119
15
- radnn/system/filestore.py,sha256=gNESaiJNwdrFbkzcbkSv-O4V8vrBagOSR90WcFueNsA,8977
16
- radnn/system/filesystem.py,sha256=jt37OP9UgdJihjKLRWpMmERt1L0EdS-uPRrdIduH_BQ,5523
17
- radnn/system/tee_logger.py,sha256=WcyIJiW851PP6Jk7SyCHj63BEt7HnWa5-GJtw1CjGHE,2629
18
- radnn/system/files/__init__.py,sha256=u2oGHNKM362JwqrDgwmWTAiisL067h6H9uu-d0iTBks,169
19
- radnn/system/files/csvfile.py,sha256=9uKqmCdqLAKomANejcSruHle1r3gVdByQb1I2otLcMs,2246
20
- radnn/system/files/fileobject.py,sha256=qT9qzpH6YFSIzaKfILxhpaQ1P2o2tqRh9J5J2L_Kp8Y,3851
21
- radnn/system/files/imgfile.py,sha256=HxvvittOUG1mmIp-Bg8vHnLPtRYD-N4nE86G0Rcys6M,2242
22
- radnn/system/files/jsonfile.py,sha256=CX0Y6kPEaF_eEUb8ah-5Wvp35JRVYcpvOXg-DCxRnf0,3172
23
- radnn/system/files/picklefile.py,sha256=0BFiYzr6BbGWMXyQCMjYHa_GlW8nEZ95CQtn7lpH254,5526
24
- radnn/system/files/textfile.py,sha256=r7FZ1pdFGYxKrQ_kgkEK35GIqRU8k_MjdB0OrDd5m0o,2891
25
- radnn/system/hosts/__init__.py,sha256=k2gkMJhe96Nf-V2ex6jZqmCRX9vA_K6gFB8J8Ii9ahc,261
26
- radnn/system/hosts/colab_host.py,sha256=tAuLn9gTkX9cCSEmm7sG1JmCtNIgFlASwBt2olHUSe4,2434
27
- radnn/system/hosts/linux_host.py,sha256=TZ-5JEZV0WNEB5trTbRWM0REhpuK5oYxoLodKKqhm9s,57
28
- radnn/system/hosts/windows_host.py,sha256=u4IvgfFoKWdrFy0hYG__AoxfEJYHF4-ISNXTCJ5uN8I,2257
29
- radnn-0.0.6.dist-info/LICENSE.txt,sha256=vYtt_GDvm_yW65X9YMBOOu8Vqc9SAvqH94TbfBc2ckU,1106
30
- radnn-0.0.6.dist-info/METADATA,sha256=WHrzQA_iryCKZzR7KWbRAmIygXa0cWCTqlWYj5yhc10,2861
31
- radnn-0.0.6.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
32
- radnn-0.0.6.dist-info/top_level.txt,sha256=FKlLIm6gRAeZlRzs-HCBJAB1q9ELJ7MgaL-qqFuPo6M,6
33
- radnn-0.0.6.dist-info/RECORD,,
File without changes