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

tonegas / nnodely / 14319828903

07 Apr 2025 09:27PM UTC coverage: 97.259% (+0.2%) from 97.035%
14319828903

Pull #86

github

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

2275 of 2409 new or added lines in 54 files covered. (94.44%)

1 existing line in 1 file now uncovered.

11637 of 11965 relevant lines covered (97.26%)

0.97 hits per line

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

94.29
/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

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

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

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

22

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

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

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

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

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

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

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

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

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

87
    @property
1✔
88
    def neuralized(self):
1✔
89
        return self._neuralized
1✔
90

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

95
    @property
1✔
96
    def traced(self):
1✔
97
        return self._traced
1✔
98

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

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

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

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

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

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

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

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

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

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

141

142
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