LBANN  0.103.0
LivermoreBigArtificialNeuralNetworkToolkit
lbann::callback::dump_outputs Class Reference

Dump layer output tensors to files. More...

#include <dump_outputs.hpp>

Inheritance diagram for lbann::callback::dump_outputs:
[legend]
Collaboration diagram for lbann::callback::dump_outputs:
[legend]

Public Member Functions

 dump_outputs (std::set< std::string > layer_names, std::set< execution_mode > modes, El::Int batch_interval=0, std::string directory="", std::string file_format="")
 Construct a callback to dump outputs. More...
 
dump_outputscopy () const override
 
std::string name () const override
 Return this callback's name. More...
 
void on_forward_prop_end (model *m, Layer *l) override
 Called when a layer ends forward propagation. More...
 
void on_evaluate_forward_prop_end (model *m, Layer *l) override
 Called when a layer ends forward propagation for evaluation (validation / 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_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_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_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_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...
 
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
 
 dump_outputs ()
 
void do_dump_outputs (const model &m, const Layer &l)
 Dump outputs to file. More...
 

Private Attributes

std::set< std::string > m_layer_names
 Names of layers with output dumps. More...
 
std::set< execution_modem_modes
 Execution modes with output dumps. More...
 
std::string m_directory
 Directory for output files. More...
 
std::string m_file_format
 Output file format. More...
 

Friends

class cereal::access
 

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_baseoperator= (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...
 

Detailed Description

Dump layer output tensors to files.

Saves a file for each output tensor of each selected layer, computed at each mini-batch step. Output files have the form "<model>-<mode>-epoch<#>-step<#>-<layer>-output<#>.<format>". This is primarily intended as a debugging tool, although it can be used for inference when performance is not critical.

For NumPy file formats (npy and npz), tensor dimensions are recorded. For text file formats (CSV and TSV), each line contains flattened tensor data corresponding to one mini-batch sample (which is the transpose of the column-major matrix representation we use internally).

CNPY is required to export to NumPy file formats (npy and npz).

Definition at line 54 of file dump_outputs.hpp.

Constructor & Destructor Documentation

◆ dump_outputs() [1/2]

lbann::callback::dump_outputs::dump_outputs ( std::set< std::string >  layer_names,
std::set< execution_mode modes,
El::Int  batch_interval = 0,
std::string  directory = "",
std::string  file_format = "" 
)

Construct a callback to dump outputs.

Parameters
layer_namesNames of layers with output dumps (default: dump outputs for all layers).
modesExecution modes with output dumps (default: dump outputs for all modes).
batch_intervalFrequency of output dumps (default: dump outputs at each mini-batch step).
directoryDirectory for output files (default: current working directory).
file_formatOutput file format. Options are csv, tsv, npy, npz (default: csv).

◆ dump_outputs() [2/2]

lbann::callback::dump_outputs::dump_outputs ( )
private
Here is the caller graph for this function:

Member Function Documentation

◆ copy()

dump_outputs* lbann::callback::dump_outputs::copy ( ) const
inlineoverridevirtual

Implements lbann::callback_base.

Definition at line 76 of file dump_outputs.hpp.

Here is the call graph for this function:

◆ do_dump_outputs()

void lbann::callback::dump_outputs::do_dump_outputs ( const model m,
const Layer l 
)
private

Dump outputs to file.

Returns immediately if an output dump is not needed.

Here is the caller graph for this function:

◆ name()

std::string lbann::callback::dump_outputs::name ( ) const
inlineoverridevirtual

Return this callback's name.

Implements lbann::callback_base.

Definition at line 77 of file dump_outputs.hpp.

◆ on_evaluate_forward_prop_end()

void lbann::callback::dump_outputs::on_evaluate_forward_prop_end ( model m,
Layer l 
)
overridevirtual

Called when a layer ends forward propagation for evaluation (validation / testing).

Reimplemented from lbann::callback_base.

Here is the caller graph for this function:

◆ on_forward_prop_end()

void lbann::callback::dump_outputs::on_forward_prop_end ( model m,
Layer l 
)
inlineoverridevirtual

Called when a layer ends forward propagation.

Reimplemented from lbann::callback_base.

Definition at line 79 of file dump_outputs.hpp.

Here is the call graph for this function:

◆ serialize()

template<class Archive >
void lbann::callback::dump_outputs::serialize ( Archive &  ar)

Store state to archive for checkpoint and restart.

Here is the caller graph for this function:

◆ write_specific_proto()

void lbann::callback::dump_outputs::write_specific_proto ( lbann_data::Callback &  proto) const
finalprivatevirtual

Add callback specific data to prototext

Implements lbann::callback_base.

Here is the caller graph for this function:

Friends And Related Function Documentation

◆ cereal::access

friend class cereal::access
friend

Definition at line 98 of file dump_outputs.hpp.

Member Data Documentation

◆ m_directory

std::string lbann::callback::dump_outputs::m_directory
private

Directory for output files.

Pathname has trailing '/'.

Definition at line 114 of file dump_outputs.hpp.

◆ m_file_format

std::string lbann::callback::dump_outputs::m_file_format
private

Output file format.

Definition at line 117 of file dump_outputs.hpp.

◆ m_layer_names

std::set<std::string> lbann::callback::dump_outputs::m_layer_names
private

Names of layers with output dumps.

If empty, outputs will be dumped for all layers.

Definition at line 104 of file dump_outputs.hpp.

◆ m_modes

std::set<execution_mode> lbann::callback::dump_outputs::m_modes
private

Execution modes with output dumps.

If empty, outputs will be dumped for all execution modes.

Definition at line 109 of file dump_outputs.hpp.


The documentation for this class was generated from the following file: