Monitoring¶
Main module for monitoring training process
There is:
MonitorHub
- monitors collection for connect all monitors toTrainer
AbstractMonitor
- basic class for all monitors, that will be connected toMonitorHub
ConsoleMonitor
- 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 – AbstractMonitor
objectReturns:
-
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_log
Parameters: fsm – FileStructManager
object-
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])
-