-
Notifications
You must be signed in to change notification settings - Fork 268
Architecture Description
NOTE: this information is valid from v.0.6.0 (not released yet) onwards.
Inside the /talos
folder there are several other folders.
-
/talos
- /commands || all end-user facing commands
- /logging || everything to do with logging and storing results
- /metrics || anything to do with measurement
- /model || anything to do with the input model
- /parameter || everything to do with parameter space
- /reducer || everything to do with reductions
- /scan || the mainline program codes
- /templates || datasets, models, params, and pipelines
- /utils || everything else
Once user starts an experiment with minimal settings talos.Scan(x, y, params, model)
the following takes place:
/scan/scan_prepare.py
handles the preparation for the experiment. Here scan_object
is created, which is the self
in the mainline program.
The most notable of these procedures is invoking /parameters/ParamSpace.py
which creates an object that is accessed throughout the program in self.param_object
. self.param_object
contains three important features:
- yield the next permutation
- remove permutations from the index
- yield
False
when no permutation remain in the index
Upon completion, /scan/scan_prepare.py
yields back to /scan/scan_run.py
. Each iteration in the program is handled in /scan/scan_round.py
which is invoked in a loop from /scan/scan_run.py
. This continues as long as self.param_object
yields permutations.
Once self.param_object
no longer yields permutations, /scan/scan_run.py
invokes final logging, which is handled by /scan/scan_finish.py