Open cruiseliu opened 2 years ago
Discussion iteration 1 conclusions:
Each HPO experiment writes 3 files:
Each NAS multi-trial experiment writes 2 files:
Each NAS oneshot experiment writes 1 file:
Auto-compress works as HPO; other compression experiments do not write log files.
A log message should be written to stdout, if and only if:
nni.
A log message should be written to "experiment.log", if and only if:
nni.exp_ID.
(the format of "exp_ID" is not yet decided)experiment.config.log_level
or aboveA log message should be written to "dispatcher.log", if and only if:
nni.
experiment.config.log_level
or aboveAbove rules apply to all Python modules.
Ideally a module "inside" experiment (like NAS strategy) should access experiment ID via experiment.logger
, but if it does not have a reference to the experiment, there will be a way to inference automatically.
We assume each thread only runs one experiment at a time. There will be a stack or priority queue for each thread, maintaining most recently activated experiment in current thread. The stack top is considered "current experiment".
If a strategy (or something similar) is guaranteed to run in a separate thread, the inference should be reliable; otherwise it should be considered last resort. In short, it depends on RetiariiExperiment
implementation.
Each trial have 3 output files:
Log file should only contain logger name starts with nni.
. The log level is not yet discussed.
Current Log Behavior
Due to a bug,
Experiment
log is written to dispatcher.log.debug
nni.*
are colorfuldebug
logLevel
Expected Log Behavior
logLevel
logLevel
?logLevel
NNI manager log: ?