Trainer

The main module for training process

class piepline.train.Trainer(train_config: piepline.train_config.train_config.BaseTrainConfig, fsm: piepline.utils.fsm.FileStructManager, device: torch.device = None)[source]

Class, that run drive process.

Trainer get list of training stages and every epoch loop over it.

Training process looks like:

for epoch in epochs_num:
    for stage in training_stages:
        stage.run()
        monitor_hub.update_metrics(stage.metrics_processor().get_metrics())
    save_state()
    on_epoch_end_callback()
Parameters:
  • train_configTrainConfig object
  • fsmFileStructManager object
  • device – device for training process
exception TrainerException(msg)[source]
cur_epoch_id() → int[source]

Get current epoch index

data_processor() → piepline.data_processor.data_processor.TrainDataProcessor[source]

Get data processor object

Returns:data processor
enable_lr_decaying(coeff: float, patience: int, target_val_clbk: callable) → piepline.train.Trainer[source]

Enable rearing rate decaying. Learning rate decay when target_val_clbk returns doesn’t update minimum for patience steps

Parameters:
  • coeff – lr decay coefficient
  • patience – number of steps
  • target_val_clbk – callback which returns the value that is used for lr decaying
Returns:

self object

set_epoch_num(epoch_number: int) → piepline.train.Trainer[source]

Define number of epoch for training. One epoch - one iteration over all train stages

Parameters:epoch_number – number of training epoch
Returns:self object
train() → None[source]

Run training process

train_config() → piepline.train_config.train_config.BaseTrainConfig[source]

Get train config

Returns:TrainConfig object