deeppavlov.core.trainers¶
Trainer classes.
- class deeppavlov.core.trainers.FitTrainer(chainer_config: dict, *, batch_size: int = - 1, metrics: Iterable[Union[str, dict]] = ('accuracy',), evaluation_targets: Iterable[str] = ('valid', 'test'), show_examples: bool = False, max_test_batches: int = - 1, **kwargs)[source]¶
Trainer class for fitting and evaluating
Estimators- Parameters
chainer_config –
"chainer"block of a configuration filebatch_size – batch_size to use for partial fitting (if available) and evaluation, the whole dataset is used if
batch_sizeis negative or zero (default is-1)metrics – iterable of metrics where each metric can be a registered metric name or a dict of
nameandinputswherenameis a registered metric name andinputsis a collection of parameter names from chainer’s inner memory that will be passed to the metric function; default value forinputsparameter is a concatenation of chainer’sin_yandoutfields (default is('accuracy',))evaluation_targets – data types on which to evaluate trained pipeline (default is
('valid', 'test'))show_examples – a flag used to print inputs, expected outputs and predicted outputs for the last batch in evaluation logs (default is
False)max_test_batches – maximum batches count for pipeline testing and evaluation, ignored if negative (default is
-1)**kwargs – additional parameters whose names will be logged but otherwise ignored
- evaluate(iterator: DataLearningIterator, evaluation_targets: Optional[Iterable[str]] = None) Dict[str, dict][source]¶
Run
test()on multiple data types using provided data iterator- Parameters
iterator –
DataLearningIteratorused for evaluationevaluation_targets – iterable of data types to evaluate on
- Returns
a dictionary with data types as keys and evaluation reports as values
- fit_chainer(iterator: Union[DataFittingIterator, DataLearningIterator]) None[source]¶
Build the pipeline
Chainerand successively fitEstimatorcomponents using a provided data iterator
- test(data: Iterable[Tuple[Collection[Any], Collection[Any]]], metrics: Optional[Collection[Metric]] = None, *, start_time: Optional[float] = None, show_examples: Optional[bool] = None) dict[source]¶
Calculate metrics and return reports on provided data for currently stored
Chainer- Parameters
data – iterable of batches of inputs and expected outputs
metrics – collection of metrics namedtuples containing names for report, metric functions and their inputs names (if omitted,
self.metricsis used)start_time – start time for test report
show_examples – a flag used to return inputs, expected outputs and predicted outputs for the last batch in a result report (if omitted,
self.show_examplesis used)
- Returns
a report dict containing calculated metrics, spent time value, examples count in tested data and maybe examples
- train(iterator: Union[DataFittingIterator, DataLearningIterator]) None[source]¶
Calls
fit_chainer()with provided data iterator as an argument
- class deeppavlov.core.trainers.NNTrainer(chainer_config: dict, *, batch_size: int = 1, epochs: int = - 1, start_epoch_num: int = 0, max_batches: int = - 1, metrics: Iterable[Union[str, dict]] = ('accuracy',), train_metrics: Optional[Iterable[Union[str, dict]]] = None, metric_optimization: str = 'maximize', evaluation_targets: Iterable[str] = ('valid', 'test'), show_examples: bool = False, tensorboard_log_dir: Optional[Union[Path, str]] = None, max_test_batches: int = - 1, validate_first: bool = True, validation_patience: int = 5, val_every_n_epochs: int = - 1, val_every_n_batches: int = - 1, log_every_n_batches: int = - 1, log_every_n_epochs: int = - 1, log_on_k_batches: int = 1, **kwargs)[source]¶
- Bases
FitTrainerTrainer class for training and evaluating pipelines containingEstimatorsand anNNModel- Parameters
chainer_config –
"chainer"block of a configuration filebatch_size – batch_size to use for partial fitting (if available) and evaluation, the whole dataset is used if
batch_sizeis negative or zero (default is1)epochs – maximum epochs number to train the pipeline, ignored if negative or zero (default is
-1)start_epoch_num – starting epoch number for reports (default is
0)max_batches – maximum batches number to train the pipeline, ignored if negative or zero (default is
-1)metrics – iterable of metrics where each metric can be a registered metric name or a dict of
nameandinputswherenameis a registered metric name andinputsis a collection of parameter names from chainer’s inner memory that will be passed to the metric function; default value forinputsparameter is a concatenation of chainer’sin_yandoutfields; the first metric is used for early stopping (default is('accuracy',))train_metrics – metrics calculated for train logs (if omitted,
metricsargument is used)metric_optimization – one of
'maximize'or'minimize'— strategy for metric optimization used in early stopping (default is'maximize')evaluation_targets – data types on which to evaluate a trained pipeline (default is
('valid', 'test'))show_examples – a flag used to print inputs, expected outputs and predicted outputs for the last batch in evaluation logs (default is
False)tensorboard_log_dir – path to a directory where tensorboard logs can be stored, ignored if None (default is
None)validate_first – flag used to calculate metrics on the
'valid'data type before starting training (default isTrue)validation_patience – how many times in a row the validation metric has to not improve for early stopping, ignored if negative or zero (default is
5)val_every_n_epochs – how often (in epochs) to validate the pipeline, ignored if negative or zero (default is
-1)val_every_n_batches – how often (in batches) to validate the pipeline, ignored if negative or zero (default is
-1)log_every_n_epochs – how often (in epochs) to calculate metrics on train data, ignored if negative or zero (default is
-1)log_every_n_batches – how often (in batches) to calculate metrics on train data, ignored if negative or zero (default is
-1)log_on_k_batches – count of random train batches to calculate metrics in log (default is
1)max_test_batches – maximum batches count for pipeline testing and evaluation, overrides
log_on_k_batches, ignored if negative (default is-1)**kwargs – additional parameters whose names will be logged but otherwise ignored
Trainer saves the model if it sees progress in scores. The full rules look like following:
- For the validation savepoint:
0-th validation (optional). Don’t save model, establish a baseline.
- 1-th validation.
If we have a baseline, save the model if we see an improvement, don’t save otherwise.
If we don’t have a baseline, save the model.
2nd and later validations. Save the model if we see an improvement
- For the at-train-exit savepoint:
Save the model if it happened before 1st validation (to capture early training results), don’t save otherwise.
- evaluate(iterator: DataLearningIterator, evaluation_targets: Optional[Iterable[str]] = None) Dict[str, dict]¶
Run
test()on multiple data types using provided data iterator- Parameters
iterator –
DataLearningIteratorused for evaluationevaluation_targets – iterable of data types to evaluate on
- Returns
a dictionary with data types as keys and evaluation reports as values
- fit_chainer(iterator: Union[DataFittingIterator, DataLearningIterator]) None¶
Build the pipeline
Chainerand successively fitEstimatorcomponents using a provided data iterator
- test(data: Iterable[Tuple[Collection[Any], Collection[Any]]], metrics: Optional[Collection[Metric]] = None, *, start_time: Optional[float] = None, show_examples: Optional[bool] = None) dict¶
Calculate metrics and return reports on provided data for currently stored
Chainer- Parameters
data – iterable of batches of inputs and expected outputs
metrics – collection of metrics namedtuples containing names for report, metric functions and their inputs names (if omitted,
self.metricsis used)start_time – start time for test report
show_examples – a flag used to return inputs, expected outputs and predicted outputs for the last batch in a result report (if omitted,
self.show_examplesis used)
- Returns
a report dict containing calculated metrics, spent time value, examples count in tested data and maybe examples
- train(iterator: DataLearningIterator) None[source]¶
Call
fit_chainer()and thentrain_on_batches()with provided data iterator as an argument
- train_on_batches(iterator: DataLearningIterator) None[source]¶
Train pipeline on batches using provided data iterator and initialization parameters