|
LBANN
0.103.0
LivermoreBigArtificialNeuralNetworkToolkit
|
Tournament training. More...
#include <ltfb.hpp>
Public Member Functions | |
| ltfb (El::Int batch_interval, std::string metric_name, std::unique_ptr< LTFBCommunicationAlgorithm > comm_algo, bool exchange_hyperparameters=false) | |
| Construct the LTFB callback. More... | |
| ltfb (const ltfb &other) | |
| ltfb & | operator= (const ltfb &other) |
| ltfb * | copy () const override |
| std::string | name () const override |
| Return this callback's name. More... | |
| void | on_train_begin (model *m) override |
| Called at the beginning of training. More... | |
| void | on_batch_begin (model *m) override |
| Called at the beginning of a (mini-)batch. More... | |
Public Member Functions inherited from lbann::callback_base | |
| callback_base (int batch_interval=1) | |
| Initialize a callback with an optional batch interval. More... | |
| callback_base (const callback_base &)=default | |
| virtual | ~callback_base ()=default |
| virtual void | setup (trainer *t) |
| Called once to set up the callback on the trainer. More... | |
| virtual void | setup (model *m) |
| Called once to set up the callback on the model (after all layers are set up). More... | |
| virtual void | on_setup_end (model *m) |
| Called at the end of setup. More... | |
| virtual void | on_train_end (model *m) |
| Called at the end of training. More... | |
| virtual void | on_phase_end (model *m) |
| Called at the end of every phase (multiple epochs) in a layer-wise model training. More... | |
| virtual void | on_epoch_begin (model *m) |
| Called at the beginning of each epoch. More... | |
| virtual void | on_epoch_end (model *m) |
| Called immediate after the end of each epoch. More... | |
| virtual void | on_batch_end (model *m) |
| Called immediately after the end of a (mini-)batch. More... | |
| virtual void | on_test_begin (model *m) |
| Called at the beginning of testing. More... | |
| virtual void | on_test_end (model *m) |
| Called immediately after the end of testing. More... | |
| virtual void | on_validation_begin (model *m) |
| Called at the beginning of validation. More... | |
| virtual void | on_validation_end (model *m) |
| Called immediately after the end of validation. More... | |
| virtual void | on_forward_prop_begin (model *m) |
| Called when a model begins forward propagation. More... | |
| virtual void | on_forward_prop_begin (model *m, Layer *l) |
| Called when a layer begins forward propagation. More... | |
| virtual void | on_forward_prop_end (model *m) |
| Called when a model ends forward propagation. More... | |
| virtual void | on_forward_prop_end (model *m, Layer *l) |
| Called when a layer ends forward propagation. More... | |
| virtual void | on_backward_prop_begin (model *m) |
| Called when a model begins backward propagation. More... | |
| virtual void | on_backward_prop_begin (model *m, Layer *l) |
| Called when a layer begins backward propagation. More... | |
| virtual void | on_backward_prop_end (model *m) |
| Called when a model ends backward propagation. More... | |
| virtual void | on_backward_prop_end (model *m, Layer *l) |
| Called when a layer ends backward propagation. More... | |
| virtual void | on_optimize_begin (model *m) |
| Called when a model begins optimization. More... | |
| virtual void | on_optimize_begin (model *m, weights *w) |
| Called when weights begins optimization. More... | |
| virtual void | on_optimize_end (model *m) |
| Called when a model ends optimization. More... | |
| virtual void | on_optimize_end (model *m, weights *w) |
| Called when weights ends optimization. More... | |
| virtual void | on_batch_evaluate_begin (model *m) |
| Called at the beginning of a (mini-)batch evaluation (validation / testing). More... | |
| virtual void | on_batch_evaluate_end (model *m) |
| Called at the end of a (mini-)batch evaluation (validation / testing). More... | |
| virtual void | on_evaluate_forward_prop_begin (model *m) |
| Called when a model begins forward propagation for evaluation (validation / testing). More... | |
| virtual void | on_evaluate_forward_prop_begin (model *m, Layer *l) |
| Called when a layer begins forward propagation for evaluation (validation / testing). More... | |
| virtual void | on_evaluate_forward_prop_end (model *m) |
| Called when a model ends forward propagation for evaluation (validation / testing). More... | |
| virtual void | on_evaluate_forward_prop_end (model *m, Layer *l) |
| Called when a layer ends forward propagation for evaluation (validation / testing). More... | |
| int | get_batch_interval () const |
| Return the batch interval. More... | |
| virtual description | get_description () const |
| Human-readable description. More... | |
| template<class Archive > | |
| void | serialize (Archive &ar) |
| Store state to archive for checkpoint and restart. More... | |
| void | write_proto (lbann_data::Callback &proto) const |
| Write a protobuf description of the callback. More... | |
Private Member Functions | |
| void | write_specific_proto (lbann_data::Callback &proto) const final |
Private Attributes | |
| std::string | m_metric_name |
| Metric for tournament evaluation. More... | |
| std::unique_ptr< LTFBCommunicationAlgorithm > | comm_algo_ |
| Communication algorithm for exchanging models. More... | |
| bool | m_low_score_wins |
| Whether low-scoring or high-scoring models survive a tournament. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from lbann::callback_base | |
| std::string | get_multi_trainer_path (const model &m, const std::string &root_dir) |
| Build a standard directory hierarchy including trainer ID. More... | |
| std::string | get_multi_trainer_ec_model_path (const model &m, const std::string &root_dir) |
| Build a standard directory hierachy including trainer, execution context, and model information (in that order). More... | |
| std::string | get_multi_trainer_model_path (const model &m, const std::string &root_dir) |
| Build a standard directory hierachy including trainer, model information in that order. More... | |
| callback_base & | operator= (const callback_base &)=default |
| Copy-assignment operator. More... | |
Protected Attributes inherited from lbann::callback_base | |
| int | m_batch_interval |
| Batch methods should once every this many steps. More... | |
Tournament training.
This is intended to support research into the LTFB algorithm. An outline:
There are many algorithmic variations to be explored:
Definition at line 62 of file callbacks/ltfb.hpp.
| lbann::callback::ltfb::ltfb | ( | El::Int | batch_interval, |
| std::string | metric_name, | ||
| std::unique_ptr< LTFBCommunicationAlgorithm > | comm_algo, | ||
| bool | exchange_hyperparameters = false |
||
| ) |
Construct the LTFB callback.
| batch_interval | Number of training mini-batch steps between tournaments. |
| metric_name | Metric for tournament evaluation. |
| comm_algo | Inter-trainer communication scheme. |
| exchange_hyperparameters | Whether to exchange hyperparameters with model information. |
| lbann::callback::ltfb::ltfb | ( | const ltfb & | other | ) |
|
inlineoverridevirtual |
Implements lbann::callback_base.
Definition at line 79 of file callbacks/ltfb.hpp.
|
inlineoverridevirtual |
Return this callback's name.
Implements lbann::callback_base.
Definition at line 80 of file callbacks/ltfb.hpp.
|
overridevirtual |
Called at the beginning of a (mini-)batch.
Reimplemented from lbann::callback_base.
|
overridevirtual |
Called at the beginning of training.
Reimplemented from lbann::callback_base.
|
finalprivatevirtual |
Add callback specific data to prototext
Implements lbann::callback_base.
|
private |
Communication algorithm for exchanging models.
Definition at line 93 of file callbacks/ltfb.hpp.
|
private |
Whether low-scoring or high-scoring models survive a tournament.
Definition at line 97 of file callbacks/ltfb.hpp.
|
private |
Metric for tournament evaluation.
Definition at line 90 of file callbacks/ltfb.hpp.