BaseTrainer

class tfsnippet.BaseTrainer(loop)

Bases: object

Base class for all trainers.

All the trainers provided in tfsnippet.trainer are not designed to take control of the training totally, which is often assumed in other libraries such as Keras. Instead, it just takes responsibility of assembling different steps of a training process together, and run the main training loop. So it is usually the caller’s responsibility to derive his training operation from a certain TensorFlow optimizer, and pass it to a proper trainer.

See also

tfsnippet.trainer.LossTrainer

Attributes Summary

after_epochs Get the hooks run after epochs.
after_steps Get the hooks run after steps.
before_epochs Get the hooks run before epochs.
before_steps Get the hooks run before steps.
hook_lists Get all the hook lists.
loop Get the training loop object.

Methods Summary

anneal_after(value[, epochs, steps]) Add an annealing hook to run after every few epochs or steps.
anneal_after_epochs(value, freq) Add an annealing hook to run after every few epochs.
anneal_after_steps(value, freq) Add an annealing hook to run after every few steps.
evaluate_after(evaluator[, epochs, steps]) Add an evaluation hook to run after every few epochs or steps.
evaluate_after_epochs(evaluator, freq) Add an evaluation hook to run after every few epochs.
evaluate_after_steps(evaluator, freq) Add an evaluation hook to run after every few steps.
log_after([epochs, steps]) Add a logging hook to run after every few epochs or steps.
log_after_epochs(freq) Add a logging hook to run after every few epochs.
log_after_steps(freq) Add a logging hook to run after every few steps.
remove_annealing_hooks() Remove annealing hooks from all lists.
remove_by_priority(priority) Remove hooks having the specified priority from all lists.
remove_evaluation_hooks() Remove evaluation hooks from all lists.
remove_log_hooks() Remove logging hooks from all lists.
remove_validation_hooks() Remove evaluation hooks from all lists.
run() Run training loop.
validate_after(evaluator[, epochs, steps]) Add an evaluation hook to run after every few epochs or steps.
validate_after_epochs(evaluator, freq) Add an evaluation hook to run after every few epochs.
validate_after_steps(evaluator, freq) Add an evaluation hook to run after every few steps.

Attributes Documentation

after_epochs

Get the hooks run after epochs.

Returns:The hook list.
Return type:HookList
after_steps

Get the hooks run after steps.

Returns:The hook list.
Return type:HookList
before_epochs

Get the hooks run before epochs.

Returns:The hook list.
Return type:HookList
before_steps

Get the hooks run before steps.

Returns:The hook list.
Return type:HookList
hook_lists

Get all the hook lists.

Returns:
The tuple (self.before_epochs, self.before_steps,
self.after_steps, self.after_epochs).
Return type:tuple[HookList]
loop

Get the training loop object.

Returns:The training loop object.
Return type:TrainLoop

Methods Documentation

anneal_after(value, epochs=None, steps=None)

Add an annealing hook to run after every few epochs or steps.

Parameters:
  • value (AnnealingVariable or () -> any) – An annealing variable (which has .anneal()), or any callable object.
  • epochs (None or int) – Run validation after every this few epochs.
  • steps (None or int) – Run validation after every this few steps.
Raises:

ValueError – If both epochs and steps are specified, or neither is specified.

anneal_after_epochs(value, freq)

Add an annealing hook to run after every few epochs.

Parameters:
  • value (AnnealingVariable or () -> any) – An annealing variable (which has .anneal()), or any callable object.
  • freq (int) – The frequency for this annealing hook to run.
anneal_after_steps(value, freq)

Add an annealing hook to run after every few steps.

Parameters:
  • value (AnnealingVariable or () -> any) – An annealing variable (which has .anneal()), or any callable object.
  • freq (int) – The frequency for this annealing hook to run.
evaluate_after(evaluator, epochs=None, steps=None)

Add an evaluation hook to run after every few epochs or steps.

Parameters:
  • evaluator (Evaluator or () -> any) – A evaluator object (which has .run()), or any callable object.
  • epochs (None or int) – Run validation after every this few epochs.
  • steps (None or int) – Run validation after every this few steps.
Raises:

ValueError – If both epochs and steps are specified, or neither is specified.

evaluate_after_epochs(evaluator, freq)

Add an evaluation hook to run after every few epochs.

Parameters:
  • evaluator (Evaluator or () -> any) – A evaluator object (which has .run()), or any callable object.
  • freq (int) – The frequency for this evaluation hook to run.
evaluate_after_steps(evaluator, freq)

Add an evaluation hook to run after every few steps.

Parameters:
  • evaluator (Evaluator or () -> any) – A evaluator object (which has .run()), or any callable object.
  • freq (int) – The frequency for this evaluation hook to run.
log_after(epochs=None, steps=None)

Add a logging hook to run after every few epochs or steps.

Parameters:
  • epochs (None or int) – Run validation after every this few epochs.
  • steps (None or int) – Run validation after every this few steps.
Raises:

ValueError – If both epochs and steps are specified, or neither is specified.

log_after_epochs(freq)

Add a logging hook to run after every few epochs.

Parameters:freq (int) – The frequency for this logging hook to run.
log_after_steps(freq)

Add a logging hook to run after every few steps.

Parameters:freq (int) – The frequency for this logging hook to run.
remove_annealing_hooks()

Remove annealing hooks from all lists.

Returns:The number of removed hooks.
Return type:int
remove_by_priority(priority)

Remove hooks having the specified priority from all lists.

Parameters:priority – The priority of the hooks to be removed.
Returns:The number of removed hooks.
Return type:int
remove_evaluation_hooks()

Remove evaluation hooks from all lists.

Returns:The number of removed hooks.
Return type:int
remove_log_hooks()

Remove logging hooks from all lists.

Returns:The number of removed hooks.
Return type:int
remove_validation_hooks()

Remove evaluation hooks from all lists.

Returns:The number of removed hooks.
Return type:int
run()

Run training loop.

validate_after(evaluator, epochs=None, steps=None)

Add an evaluation hook to run after every few epochs or steps.

Parameters:
  • evaluator (Evaluator or () -> any) – A evaluator object (which has .run()), or any callable object.
  • epochs (None or int) – Run validation after every this few epochs.
  • steps (None or int) – Run validation after every this few steps.
Raises:

ValueError – If both epochs and steps are specified, or neither is specified.

validate_after_epochs(evaluator, freq)

Add an evaluation hook to run after every few epochs.

Parameters:
  • evaluator (Evaluator or () -> any) – A evaluator object (which has .run()), or any callable object.
  • freq (int) – The frequency for this evaluation hook to run.
validate_after_steps(evaluator, freq)

Add an evaluation hook to run after every few steps.

Parameters:
  • evaluator (Evaluator or () -> any) – A evaluator object (which has .run()), or any callable object.
  • freq (int) – The frequency for this evaluation hook to run.