tfaip.trainer

Trainer

Definition of the Trainer

class tfaip.trainer.trainer.Trainer(params: TTrainerParams, scenario: tfaip.scenario.scenariobase.ScenarioBase, restore=False)

Bases: Generic[tfaip.trainer.trainer.TTrainerParams], abc.ABC

The Trainer class is typically identical for all scenarios. Its purpose is to set up the training callbacks, Warmstarting/Restarting. The training loop is wrapped in ScenarioBase and is a call to keras.Model.fit.

classmethod params_cls()Type[TTrainerParams]
static parse_trainer_params(d: Union[str, dict])Tuple[TTrainerParams, Type[tfaip.scenario.scenariobase.ScenarioBase]]
classmethod restore_trainer(checkpoint: Union[str, dict])tfaip.trainer.trainer.Trainer
__init__(params: TTrainerParams, scenario: tfaip.scenario.scenariobase.ScenarioBase, restore=False)

Initialize self. See help(type(self)) for accurate signature.

property scenario
property params
train(**kwargs)
create_train_params_logger_callback(store_weights, store_params)
setup_callbacks(optimizer, callbacks=None)
setup_steps_per_epoch()
fit()
create_warmstarter()tfaip.trainer.warmstart.warmstarter.WarmStarter

TrainerParams

Definition of the TrainerParams and the TrainerPipelineParamsBase

class tfaip.trainer.params.TrainerPipelines(train: tfaip.data.databaseparams.DataPipelineParams = <factory>, val: tfaip.data.databaseparams.DataPipelineParams = <factory>)

Bases: object

train: tfaip.data.databaseparams.DataPipelineParams
val: tfaip.data.databaseparams.DataPipelineParams
__init__(train: tfaip.data.databaseparams.DataPipelineParams = <factory>, val: tfaip.data.databaseparams.DataPipelineParams = <factory>)None

Initialize self. See help(type(self)) for accurate signature.

classmethod from_dict(kvs: Optional[Union[dict, list, str, int, float, bool]], *, infer_missing=False)A
classmethod from_json(s: Union[str, bytes, bytearray], *, parse_float=None, parse_int=None, parse_constant=None, infer_missing=False, **kw)A
classmethod schema(*, infer_missing: bool = False, only=None, exclude=(), many: bool = False, context=None, load_only=(), dump_only=(), partial: bool = False, unknown=None)dataclasses_json.mm.SchemaF[A]
to_dict(encode_json=False)Dict[str, Optional[Union[dict, list, str, int, float, bool]]]
to_json(*, skipkeys: bool = False, ensure_ascii: bool = True, check_circular: bool = True, allow_nan: bool = True, indent: Optional[Union[int, str]] = None, separators: Optional[Tuple[str, str]] = None, default: Optional[Callable] = None, sort_keys: bool = False, **kw)str
class tfaip.trainer.params.TrainerPipelineParamsBaseMeta(*args, **kwargs)

Bases: tfaip.util.generic_meta.CollectGenericTypes

class tfaip.trainer.params.TrainerPipelineParamsBase(setup: tfaip.trainer.params.TrainerPipelines = <factory>)

Bases: Generic[tfaip.trainer.params.TDataGeneratorTrain, tfaip.trainer.params.TDataGeneratorVal], abc.ABC

Definition of the training pipeline inputs.

Specify the DataGeneratorParams for Training and Validation as Generaics.

setup: tfaip.trainer.params.TrainerPipelines
classmethod train_cls()
classmethod val_cls()
abstract train_gen()TDataGeneratorTrain
abstract val_gen()Optional[TDataGeneratorVal]
lav_gen()Iterable[TDataGeneratorVal]
train_data(data: DataBase)DataPipeline
val_data(data: DataBase)DataPipeline
lav_data(data: DataBase)Iterable[DataPipeline]
__init__(setup: tfaip.trainer.params.TrainerPipelines = <factory>)None

Initialize self. See help(type(self)) for accurate signature.

classmethod from_dict(kvs: Optional[Union[dict, list, str, int, float, bool]], *, infer_missing=False)A
classmethod from_json(s: Union[str, bytes, bytearray], *, parse_float=None, parse_int=None, parse_constant=None, infer_missing=False, **kw)A
classmethod schema(*, infer_missing: bool = False, only=None, exclude=(), many: bool = False, context=None, load_only=(), dump_only=(), partial: bool = False, unknown=None)dataclasses_json.mm.SchemaF[A]
to_dict(encode_json=False)Dict[str, Optional[Union[dict, list, str, int, float, bool]]]
to_json(*, skipkeys: bool = False, ensure_ascii: bool = True, check_circular: bool = True, allow_nan: bool = True, indent: Optional[Union[int, str]] = None, separators: Optional[Tuple[str, str]] = None, default: Optional[Callable] = None, sort_keys: bool = False, **kw)str
class tfaip.trainer.params.TrainerPipelineParamsMeta(*args, **kwargs)

Bases: tfaip.util.generic_meta.ReplaceDefaultDataClassFieldsMeta, tfaip.trainer.params.TrainerPipelineParamsBaseMeta

class tfaip.trainer.params.TrainerPipelineParams(*args, **kwds)

Bases: tfaip.trainer.params.TrainerPipelineParamsBase[tfaip.trainer.params.TDataGeneratorTrain, tfaip.trainer.params.TDataGeneratorVal]

train: TDataGeneratorTrain
val: TDataGeneratorVal
train_gen()TDataGeneratorTrain
val_gen()TDataGeneratorVal
__init__(setup: tfaip.trainer.params.TrainerPipelines = <factory>, train: TDataGeneratorTrain = <factory>, val: TDataGeneratorVal = <factory>)None

Initialize self. See help(type(self)) for accurate signature.

classmethod from_dict(kvs: Optional[Union[dict, list, str, int, float, bool]], *, infer_missing=False)A
classmethod from_json(s: Union[str, bytes, bytearray], *, parse_float=None, parse_int=None, parse_constant=None, infer_missing=False, **kw)A
classmethod schema(*, infer_missing: bool = False, only=None, exclude=(), many: bool = False, context=None, load_only=(), dump_only=(), partial: bool = False, unknown=None)dataclasses_json.mm.SchemaF[A]
to_dict(encode_json=False)Dict[str, Optional[Union[dict, list, str, int, float, bool]]]
to_json(*, skipkeys: bool = False, ensure_ascii: bool = True, check_circular: bool = True, allow_nan: bool = True, indent: Optional[Union[int, str]] = None, separators: Optional[Tuple[str, str]] = None, default: Optional[Callable] = None, sort_keys: bool = False, **kw)str
class tfaip.trainer.params.TrainerParamsMeta(*args, **kwargs)

Bases: tfaip.util.generic_meta.ReplaceDefaultDataClassFieldsMeta

Meta class for the trainer params

The class will automatically replace the defaults of the scenario on gen field with the actual class passed to the Generic.

class tfaip.trainer.params.TrainerParams(epochs: int = 100, current_epoch: int = 0, samples_per_epoch: int = -1, scale_epoch_size: float = 1, train_accum_steps: int = 1, progress_bar_mode: int = 1, progbar_delta_time: float = 5, tf_cpp_min_log_level: int = 2, force_eager: bool = False, skip_model_load_test: bool = False, val_every_n: int = 1, lav_every_n: int = 0, lav_min_epoch: int = 0, output_dir: Optional[str] = None, write_checkpoints: bool = True, export_best: Optional[bool] = None, export_final: bool = True, no_train_scope: Optional[str] = None, ema_decay: float = 0.0, random_seed: Optional[int] = None, profile: bool = False, device: tfaip.device.device_config.DeviceConfigParams = <factory>, optimizer: tfaip.trainer.optimizer.optimizers.OptimizerParams = <factory>, learning_rate: tfaip.trainer.scheduler.learningrate_params.LearningRateParams = <factory>, scenario: TScenarioParams = <factory>, warmstart: tfaip.trainer.warmstart.warmstart_params.WarmStartParams = <factory>, early_stopping: tfaip.trainer.callbacks.earlystopping.params.EarlyStoppingParams = <factory>, gen: TTrainerPipelineParams = <factory>, saved_checkpoint_sub_dir: str = '', checkpoint_sub_dir: str = '', checkpoint_save_freq: Union[str, int] = 'epoch')

Bases: Generic[tfaip.trainer.params.TScenarioParams, tfaip.trainer.params.TTrainerPipelineParams], abc.ABC

TrainerParams storing hyper-parameters, the ScenarioBaseParams, and the TrainerPipelineParams

epochs: int = 100
current_epoch: int = 0
samples_per_epoch: int = -1
scale_epoch_size: float = 1
train_accum_steps: int = 1
progress_bar_mode: int = 1
progbar_delta_time: float = 5
tf_cpp_min_log_level: int = 2
force_eager: bool = False
skip_model_load_test: bool = False
val_every_n: int = 1
lav_every_n: int = 0
lav_min_epoch: int = 0
output_dir: Optional[str] = None
write_checkpoints: bool = True
export_best: Optional[bool] = None
export_final: bool = True
no_train_scope: Optional[str] = None
ema_decay: float = 0.0
random_seed: Optional[int] = None
profile: bool = False
device: tfaip.device.device_config.DeviceConfigParams
optimizer: tfaip.trainer.optimizer.optimizers.OptimizerParams
learning_rate: tfaip.trainer.scheduler.learningrate_params.LearningRateParams
scenario: TScenarioParams
warmstart: tfaip.trainer.warmstart.warmstart_params.WarmStartParams
early_stopping: tfaip.trainer.callbacks.earlystopping.params.EarlyStoppingParams
gen: TTrainerPipelineParams
saved_checkpoint_sub_dir: str = ''
checkpoint_sub_dir: str = ''
checkpoint_save_freq: Union[str, int] = 'epoch'
__init__(epochs: int = 100, current_epoch: int = 0, samples_per_epoch: int = -1, scale_epoch_size: float = 1, train_accum_steps: int = 1, progress_bar_mode: int = 1, progbar_delta_time: float = 5, tf_cpp_min_log_level: int = 2, force_eager: bool = False, skip_model_load_test: bool = False, val_every_n: int = 1, lav_every_n: int = 0, lav_min_epoch: int = 0, output_dir: Optional[str] = None, write_checkpoints: bool = True, export_best: Optional[bool] = None, export_final: bool = True, no_train_scope: Optional[str] = None, ema_decay: float = 0.0, random_seed: Optional[int] = None, profile: bool = False, device: tfaip.device.device_config.DeviceConfigParams = <factory>, optimizer: tfaip.trainer.optimizer.optimizers.OptimizerParams = <factory>, learning_rate: tfaip.trainer.scheduler.learningrate_params.LearningRateParams = <factory>, scenario: TScenarioParams = <factory>, warmstart: tfaip.trainer.warmstart.warmstart_params.WarmStartParams = <factory>, early_stopping: tfaip.trainer.callbacks.earlystopping.params.EarlyStoppingParams = <factory>, gen: TTrainerPipelineParams = <factory>, saved_checkpoint_sub_dir: str = '', checkpoint_sub_dir: str = '', checkpoint_save_freq: Union[str, int] = 'epoch')None

Initialize self. See help(type(self)) for accurate signature.

classmethod from_dict(kvs: Optional[Union[dict, list, str, int, float, bool]], *, infer_missing=False)A
classmethod from_json(s: Union[str, bytes, bytearray], *, parse_float=None, parse_int=None, parse_constant=None, infer_missing=False, **kw)A
classmethod schema(*, infer_missing: bool = False, only=None, exclude=(), many: bool = False, context=None, load_only=(), dump_only=(), partial: bool = False, unknown=None)dataclasses_json.mm.SchemaF[A]
to_dict(encode_json=False)Dict[str, Optional[Union[dict, list, str, int, float, bool]]]
to_json(*, skipkeys: bool = False, ensure_ascii: bool = True, check_circular: bool = True, allow_nan: bool = True, indent: Optional[Union[int, str]] = None, separators: Optional[Tuple[str, str]] = None, default: Optional[Callable] = None, sort_keys: bool = False, **kw)str