|
LBANN
0.103.0
LivermoreBigArtificialNeuralNetworkToolkit
|
Gradient checking callback. More...
#include <check_gradients.hpp>
Public Member Functions | |
| check_gradients (std::set< execution_mode > modes={}, DataType step_size=DataType(0), bool verbose=false, bool error_on_failure=false) | |
| check_gradients * | copy () const override |
| std::string | name () const override |
| Return this callback's name. More... | |
| void | on_train_end (model *m) override |
| Called at the end of training. More... | |
| void | on_validation_end (model *m) override |
| Called immediately after the end of validation. More... | |
| void | on_test_end (model *m) override |
| Called immediately after the end of testing. More... | |
Serialization | |
| template<class Archive > | |
| void | serialize (Archive &ar) |
| Store state to archive for checkpoint and restart. 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_begin (model *m) |
| Called at the beginning 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_begin (model *m) |
| Called at the beginning of a (mini-)batch. 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_validation_begin (model *m) |
| Called at the beginning 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 |
| void | do_check_gradients (model &m) const |
Private Attributes | |
| std::set< execution_mode > | m_modes |
| EvalType | m_step_size |
| bool | m_verbose |
| bool | m_error_on_failure |
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... | |
Gradient checking callback.
Gradient checking is performed at the end of each execution mode phase. Using a fourth-order finite difference scheme, a numerical partial derivative is computed for every weight parameter. If the numerical derivative differs signifcantly from the analytical derivative computed during backprop, the gradient check has failed.
Definition at line 48 of file check_gradients.hpp.
| lbann::callback::check_gradients::check_gradients | ( | std::set< execution_mode > | modes = {}, |
| DataType | step_size = DataType(0), |
||
| bool | verbose = false, |
||
| bool | error_on_failure = false |
||
| ) |
| modes | Execution modes with gradient checks. If none are provided, gradient checking is performed for every execution mode. |
| step_size | Step size for numerical differentiation (with a step size of zero, the step size is estimated to minimize the numerical error). |
| verbose | Whether to print results for each parameter. |
| error_on_failure | Whether to throw an exception for large gradient errors. |
|
inlineoverridevirtual |
Implements lbann::callback_base.
Definition at line 68 of file check_gradients.hpp.
|
private |
Does nothing if current execution mode is not in m_modes.
|
inlineoverridevirtual |
Return this callback's name.
Implements lbann::callback_base.
Definition at line 69 of file check_gradients.hpp.
|
inlineoverridevirtual |
Called immediately after the end of testing.
Reimplemented from lbann::callback_base.
Definition at line 72 of file check_gradients.hpp.
|
inlineoverridevirtual |
Called at the end of training.
Reimplemented from lbann::callback_base.
Definition at line 70 of file check_gradients.hpp.
|
inlineoverridevirtual |
Called immediately after the end of validation.
Reimplemented from lbann::callback_base.
Definition at line 71 of file check_gradients.hpp.
| void lbann::callback::check_gradients::serialize | ( | Archive & | ar | ) |
Store state to archive for checkpoint and restart.
|
finalprivatevirtual |
Add callback specific data to prototext
Implements lbann::callback_base.
|
private |
Whether to throw an exception for large gradient errors.
Definition at line 94 of file check_gradients.hpp.
|
private |
Execution modes with gradient checks.
Definition at line 88 of file check_gradients.hpp.
|
private |
Step size for numerical differentiation.
Definition at line 90 of file check_gradients.hpp.
|
private |
Whether to print results for each parameter.
Definition at line 92 of file check_gradients.hpp.