• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

tonegas / nnodely / 14359872492

09 Apr 2025 02:33PM UTC coverage: 97.602% (+0.6%) from 97.035%
14359872492

Pull #86

github

web-flow
Merge ec719935a into e9c323c4f
Pull Request #86: Smallclasses

2291 of 2418 new or added lines in 54 files covered. (94.75%)

3 existing lines in 1 file now uncovered.

11683 of 11970 relevant lines covered (97.6%)

0.98 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

94.44
/nnodely/nnodely.py
1
# Extern packages
2
import random, torch
1✔
3
import numpy as np
1✔
4

5
# Main operators
6
from nnodely.operators.network import Network
1✔
7
from nnodely.operators.trainer import Trainer
1✔
8
from nnodely.operators.loader import Loader
1✔
9
from nnodely.operators.validator import Validator
1✔
10
from nnodely.operators.exporter import Exporter
1✔
11
from nnodely.operators.memory import Memory
1✔
12

13
# nnodely packages
14
from nnodely.visualizer import TextVisualizer, Visualizer
1✔
15
from nnodely.basic.modeldef import ModelDef
1✔
16
from nnodely.basic.relation import NeuObj
1✔
17

18
from nnodely.support.utils import ReadOnlyDict
1✔
19

20
from nnodely.support.logger import logging, nnLogger
1✔
21
log = nnLogger(__name__, logging.INFO)
1✔
22

23

24
def clearNames(names:str|None = None):
1✔
25
    NeuObj.clearNames(names)
1✔
26

27
class Modely(Memory, Network, Trainer, Loader, Validator, Exporter):
1✔
28
    """
29
    Create the main object, the nnodely object, that will be used to create the network, train and export it.
30

31
    Parameters
32
    ----------
33
    visualizer : str, Visualizer, optional
34
        The visualizer to be used. Default is the 'Standard' visualizer.
35
    exporter : str, Exporter, optional
36
        The exporter to be used. Default is the 'Standard' exporter.
37
    seed : int, optional
38
        Set the seed for all the random modules inside the nnodely framework. Default is None.
39
    workspace : str
40
        The path of the workspace where all the exported files will be saved.
41
    log_internal : bool
42
        Whether or not save the logs. Default is False.
43
    save_history : bool
44
        Whether or not save the history. Default is False.
45

46
    Example
47
    -------
48
        >>> model = Modely()
49
    """
50
    def __init__(self,
1✔
51
                 visualizer:str|Visualizer|None = 'Standard',
52
                 exporter:str|Exporter|None = 'Standard',
53
                 seed:int|None = None,
54
                 workspace:str|None = None,
55
                 log_internal:bool = False,
56
                 save_history:bool = False):
57

58
        # Visualizer
59
        if visualizer == 'Standard':
1✔
60
            self.visualizer = TextVisualizer(1)
1✔
61
        elif visualizer != None:
1✔
62
            self.visualizer = visualizer
1✔
63
        else:
64
            self.visualizer = Visualizer()
1✔
65
        self.visualizer.setModely(self)
1✔
66

67
        ## Set the random seed for reproducibility
68
        if seed is not None:
1✔
69
            self.resetSeed(seed)
1✔
70

71
        # Save internal
72
        self.log_internal = log_internal
1✔
73
        if self.log_internal == True:
1✔
74
            self.internals = {}
1✔
75

76
        # Models definition
77
        self._model_def = ModelDef()
1✔
78
        self._model = None
1✔
79
        self._neuralized = False
1✔
80
        self._traced = False
1✔
81

82
        Memory.__init__(self)
1✔
83
        Network.__init__(self)
1✔
84
        Loader.__init__(self)
1✔
85
        Trainer.__init__(self)
1✔
86
        Validator.__init__(self)
1✔
87
        Exporter.__init__(self, exporter, workspace, save_history=save_history)
1✔
88

89
    @property
1✔
90
    def neuralized(self):
1✔
91
        return self._neuralized
1✔
92

93
    @neuralized.setter
1✔
94
    def neuralized(self, value):
1✔
NEW
95
        raise AttributeError("Cannot modify read-only property 'neuralized' use neuralizeModel() instead.")
×
96

97
    @property
1✔
98
    def traced(self):
1✔
99
        return self._traced
1✔
100

101
    @traced.setter
1✔
102
    def traced(self, value):
1✔
NEW
103
        raise AttributeError("Cannot modify read-only property 'traced'.")
×
104

105
    @property
1✔
106
    def parameters(self):
1✔
107
        return ReadOnlyDict({key:value.detach().numpy().tolist() for key,value in self._model.all_parameters.items()})
1✔
108

109
    @property
1✔
110
    def constants(self):
1✔
NEW
111
        return ReadOnlyDict({key:value.detach().numpy().tolist() for key,value in self._model.all_constants})
×
112

113
    @property
1✔
114
    def states(self):
1✔
115
        return {key:value.detach().numpy().tolist() for key,value in self._states.items()}
1✔
116

117
    @property
1✔
118
    def performance(self):
1✔
NEW
119
        return ReadOnlyDict(self._performance)
×
120

121
    @property
1✔
122
    def json(self):
1✔
123
        return ReadOnlyDict(self._model_def._ModelDef__json)
1✔
124

125
    def resetSeed(self, seed):
1✔
126
        """
127
        Resets the random seed for reproducibility.
128

129
        This method sets the seed for various random number generators used in the project to ensure reproducibility of results.
130

131
        :param seed: The seed value to be used for the random number generators.
132
        :type seed: int
133

134
        Example:
135
            >>> model = nnodely()
136
            >>> model.resetSeed(42)
137
        """
138
        torch.manual_seed(seed)  ## set the pytorch seed
1✔
139
        torch.cuda.manual_seed_all(seed)
1✔
140
        random.seed(seed)  ## set the random module seed
1✔
141
        np.random.seed(seed)  ## set the numpy seed
1✔
142

143

144
nnodely = Modely
1✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc