Monitoring¶
Main module for monitoring training process
There is:
MonitorHub- monitors collection for connect all monitors toTrainerAbstractMonitor- basic class for all monitors, that will be connected toMonitorHubConsoleMonitor- monitor, that used for write epoch results to consoleLogMonitor- monitor, used for metrics logging
-
class
neural_pipeline.monitoring.MonitorHub[source]¶ Aggregator of monitors. This class collect monitors and provide unified interface to it’s
-
add_monitor(monitor: neural_pipeline.monitoring.AbstractMonitor) → neural_pipeline.monitoring.MonitorHub[source]¶ Connect monitor to hub
Parameters: monitor – AbstractMonitorobjectReturns:
-
set_epoch_num(epoch_num: int) → None[source]¶ Set current epoch num
Parameters: epoch_num – num of current epoch
-
-
class
neural_pipeline.monitoring.AbstractMonitor[source]¶ Basic class for every monitor.
-
set_epoch_num(epoch_num: int) → None[source]¶ Set current epoch num
Parameters: epoch_num – num of current epoch
-
-
class
neural_pipeline.monitoring.ConsoleMonitor[source]¶ Monitor, that used for write metrics to console.
Output looks like:
Epoch: [#]; train: [-1, 0, 1]; validation: [-1, 0, 1]. This 3 numbers is [min, mean, max] values of training stage loss values
-
class
neural_pipeline.monitoring.LogMonitor(fsm: neural_pipeline.utils.fsm.FileStructManager)[source]¶ Monitor, used for logging metrics. It’s write full log and can also write last metrics in separate file if required
All output files in JSON format and stores in
<base_dir_path>/monitors/metrics_logParameters: fsm – FileStructManagerobject-
get_final_metrics_file() → str[source]¶ Get final metrics file path
Returns: path or None if writing doesn’t enabled by write_final_metrics()
-
update_losses(losses: {}) → None[source]¶ Update losses on monitor
Parameters: losses – losses values dict with keys is names of stages in train pipeline (e.g. [train, validation])
-