| DaNNet
    | 
Layer base class. More...
#include <dnn_layer_base.h>
 
  
 | Public Member Functions | |
| layer (void) | |
| Layer constructor.  More... | |
| ~layer () | |
| virtual void | init (void) | 
| Initialize layer.  More... | |
| virtual void | upd_buf_size (arma::uword nmb) | 
| Update layer buffer sizes.  More... | |
| virtual void | prop (void) | 
| Forward propagation.  More... | |
| virtual void | prop_mb (void) | 
| Forward propagation - mini batch.  More... | |
| virtual void | backprop (void) | 
| Back propagation.  More... | |
| virtual void | update (void) | 
| Parameter update.  More... | |
| virtual void | disp (void) | 
| Display info about layer.  More... | |
| virtual void | enable_training (void) | 
| Enable training of layer.  More... | |
| virtual void | disable_training (void) | 
| Disable training of layer.  More... | |
| virtual void | enable_bias (void) | 
| Enable bias term in layer.  More... | |
| virtual void | disable_bias (void) | 
| Disable bias term in layer.  More... | |
| virtual arma::Mat< DNN_Dtype > | get_B (void) | 
| Get bias.  More... | |
| virtual arma::Cube< DNN_Dtype > | get_W (void) | 
| Get weights.  More... | |
| virtual void | set_B (arma::Mat< DNN_Dtype > &b) | 
| Set bias.  More... | |
| virtual void | set_W (arma::Cube< DNN_Dtype > &w) | 
| Set weights.  More... | |
| virtual arma::uword | get_nrof_params (void) | 
| Get number of trainable parameters.  More... | |
| virtual void | set_phase (PHASE p) | 
| Set phase/state.  More... | |
| virtual void | set_left (layer *lptr) | 
| Set pointer to left layer.  More... | |
| virtual void | set_right (layer *rptr) | 
| Set pointer to right layer.  More... | |
| virtual void | set_id (const std::string str) | 
| Set layer id string.  More... | |
| virtual std::string | get_id (void) | 
| Get layer id string.  More... | |
| virtual void | set_type (const std::string str) | 
| Set layer type string.  More... | |
| virtual std::string | get_type (void) | 
| Get layer type string.  More... | |
| virtual void | set_ix (const arma::uword n) | 
| Set layer index.  More... | |
| virtual arma::uword | get_ix (void) | 
| Get layer index.  More... | |
| virtual void | set_batch_size (const arma::uword n) | 
| Set mini batch size.  More... | |
| virtual arma::uword | get_batch_size (void) | 
| Get mini batch size.  More... | |
| virtual void | set_Y1 (arma::Mat< DNN_Dtype > &y) | 
| Set output buffer.  More... | |
| virtual void | set_Y (arma::Mat< DNN_Dtype > &y) | 
| Set output buffer - mini batch.  More... | |
| virtual void | set_Dleft (arma::Mat< DNN_Dtype > &d) | 
| Set error output buffer - mini batch.  More... | |
| virtual void | set_rows_in (arma::uword r) | 
| Set input buffer row size.  More... | |
| virtual arma::uword | get_nrof_rows (void) | 
| Get output buffer row size.  More... | |
| virtual void | set_cols_in (arma::uword c) | 
| Set input buffer column size.  More... | |
| virtual arma::uword | get_nrof_cols (void) | 
| Get output buffer column size.  More... | |
| virtual void | set_channels_in (arma::uword l) | 
| Set input buffer channel/layer size.  More... | |
| virtual arma::uword | get_nrof_channels (void) | 
| Get output buffer channel/layer size.  More... | |
| virtual void | set_opt_alg (opt &alg_class) | 
| Set pointer to optimizer class.  More... | |
| virtual opt * | get_opt_alg (void) | 
| Get pointer to optimizer class.  More... | |
| virtual arma::uword | get_nrof_inputs (void) | 
| Get total number of layer inputs.  More... | |
| virtual arma::uword | get_nrof_outputs (void) | 
| Get total number of layer outputs.  More... | |
| virtual arma::Mat< DNN_Dtype > | get_Y1 (void) | 
| Get output buffer.  More... | |
| virtual arma::Mat< DNN_Dtype > * | get_Y1_ptr (void) | 
| Get output buffer pointer.  More... | |
| virtual DNN_Dtype * | get_Y1_memptr (void) | 
| Get output buffer memory pointer.  More... | |
| virtual arma::Mat< DNN_Dtype > | get_Y (void) | 
| Get output buffer - mini batch.  More... | |
| virtual arma::Mat< DNN_Dtype > * | get_Y_ptr (void) | 
| Get output buffer pointer - mini batch.  More... | |
| virtual DNN_Dtype * | get_Y_memptr (void) | 
| Get output buffer memory pointer - mini batch.  More... | |
| virtual DNN_Dtype * | get_Y_colptr (const arma::uword n) | 
| Get output buffer memory column pointer - mini batch.  More... | |
| virtual arma::Mat< DNN_Dtype > | get_Dleft () | 
| Get error buffer - mini batch.  More... | |
| virtual arma::Mat< DNN_Dtype > * | get_Dleft_ptr (void) | 
| Get error buffer pointer - mini batch.  More... | |
| virtual DNN_Dtype * | get_Dleft_memptr (void) | 
| Get error buffer memory pointer - mini batch.  More... | |
| virtual DNN_Dtype * | get_Dleft_colptr (const arma::uword n) | 
| Get error buffer memory column pointer - mini batch.  More... | |
| virtual void | save_layer_param (std::string name, PARAM_FORMAT f=PARAM_FORMAT::ASCII) | 
| Save layer weight and bias.  More... | |
| virtual void | load_layer_param (std::string name, PARAM_FORMAT f=PARAM_FORMAT::AUTO) | 
| Load layer weight and bias.  More... | |
| template<typename T > | |
| void | init_weights (T &w, arma::uword fan_in, arma::uword fan_out, INIT_W_ALG alg, INIT_W_DIST dist) | 
| Initiate weights.  More... | |
| DNN_Dtype | sigmoid (const DNN_Dtype x) | 
| Sigmoid function - scalar.  More... | |
| arma::Mat< DNN_Dtype > | sigmoid (const arma::Mat< DNN_Dtype > &x) | 
| Sigmoid function - matrix.  More... | |
| arma::Mat< DNN_Dtype > | softmax (const arma::Mat< DNN_Dtype > &x) | 
| Softmax function - matrix.  More... | |
| Protected Attributes | |
| layer * | left | 
| Pointer to previous layer.  More... | |
| layer * | right | 
| Pointer to next layer.  More... | |
| std::string | id | 
| Layer id string.  More... | |
| std::string | type | 
| Layer type string.  More... | |
| arma::uword | layer_ix | 
| Layer index [0..].  More... | |
| bool | train_par | 
| Enable training.  More... | |
| bool | add_bias | 
| Enable bias.  More... | |
| opt * | opt_alg | 
| Pointer to optimizer.  More... | |
| PHASE | phase | 
| Active state/phase.  More... | |
| arma::uword | N_batch | 
| Mini batch size.  More... | |
| arma::uword | N_rows_left | 
| Input rows.  More... | |
| arma::uword | N_cols_left | 
| Input cols.  More... | |
| arma::uword | N_channels_left | 
| Input channels, number of filters.  More... | |
| arma::uword | N_rows_right | 
| Output rows.  More... | |
| arma::uword | N_cols_right | 
| Output cols.  More... | |
| arma::uword | N_channels_right | 
| Output channels, number of filters.  More... | |
| arma::uword | N_left | 
| Total size left.  More... | |
| arma::uword | N_right | 
| Total size right.  More... | |
| arma::Mat< DNN_Dtype > | Y | 
| Output buffer mini batch [N_right,N_batch].  More... | |
| arma::Mat< DNN_Dtype > | Y1 | 
| Output buffer [N_right,1].  More... | |
| arma::Mat< DNN_Dtype > | Dleft | 
| Error buffer [N_left,N_batch].  More... | |
| arma::Cube< DNN_Dtype > | W | 
| Weights.  More... | |
| arma::Mat< DNN_Dtype > | B | 
| Bias.  More... | |
| Friends | |
| std::ostream & | operator<< (std::ostream &os, layer &lay) | 
| operator <<  More... | |
| 
 | inline | 
Layer constructor.
Initializes layer parameters to a known default state
Definition at line 68 of file dnn_layer_base.h.
| 
 | inline | 
Definition at line 90 of file dnn_layer_base.h.
| 
 | inlinevirtual | 
Back propagation.
Reimplemented in dnn::cost_CE_softmax, dnn::cost_CE_sigmoid, dnn::act_softmax, dnn::act_tanh, dnn::cost_CE, dnn::layer_conv, dnn::pool_average, dnn::act_LReLU, dnn::cost_MSE_sigmoid, dnn::pool_max, dnn::act_ReLU, dnn::cost_MSE, dnn::act_softplus, dnn::layer_norm, dnn::layer_cost, dnn::act_sigmoid, dnn::layer_drop, dnn::layer_dense, dnn::layer_pool, and dnn::layer_act.
Definition at line 171 of file dnn_layer_base.h.
| 
 | inlinevirtual | 
Disable bias term in layer.
Definition at line 213 of file dnn_layer_base.h.
| 
 | inlinevirtual | 
Disable training of layer.
Definition at line 199 of file dnn_layer_base.h.
| 
 | inlinevirtual | 
Display info about layer.
Reimplemented in dnn::cost_CE_softmax, dnn::cost_CE_sigmoid, dnn::cost_CE, dnn::cost_MSE_sigmoid, dnn::layer_conv, dnn::cost_MSE, dnn::layer_norm, dnn::layer_cost, dnn::layer_dense, dnn::layer_input, dnn::layer_drop, dnn::layer_pool, and dnn::layer_act.
Definition at line 184 of file dnn_layer_base.h.
| 
 | inlinevirtual | 
Enable bias term in layer.
Definition at line 206 of file dnn_layer_base.h.
| 
 | inlinevirtual | 
Enable training of layer.
Definition at line 192 of file dnn_layer_base.h.
| 
 | inlinevirtual | 
Get bias.
Definition at line 220 of file dnn_layer_base.h.
| 
 | inlinevirtual | 
Get mini batch size.
Definition at line 326 of file dnn_layer_base.h.
| 
 | inlinevirtual | 
Get error buffer - mini batch.
Definition at line 477 of file dnn_layer_base.h.
| 
 | inlinevirtual | 
Get error buffer memory column pointer - mini batch.
| [in] | n | Column | 
Definition at line 499 of file dnn_layer_base.h.
| 
 | inlinevirtual | 
Get error buffer memory pointer - mini batch.
Definition at line 491 of file dnn_layer_base.h.
| 
 | inlinevirtual | 
Get error buffer pointer - mini batch.
Definition at line 484 of file dnn_layer_base.h.
| 
 | inlinevirtual | 
Get layer id string.
Definition at line 283 of file dnn_layer_base.h.
| 
 | inlinevirtual | 
Get layer index.
Definition at line 311 of file dnn_layer_base.h.
| 
 | inlinevirtual | 
Get output buffer channel/layer size.
Definition at line 389 of file dnn_layer_base.h.
| 
 | inlinevirtual | 
Get output buffer column size.
Definition at line 375 of file dnn_layer_base.h.
| 
 | inlinevirtual | 
Get total number of layer inputs.
Definition at line 410 of file dnn_layer_base.h.
| 
 | inlinevirtual | 
Get total number of layer outputs.
Definition at line 420 of file dnn_layer_base.h.
| 
 | inlinevirtual | 
Get number of trainable parameters.
Reimplemented in dnn::layer_conv, dnn::layer_dense, and dnn::layer_norm.
Definition at line 248 of file dnn_layer_base.h.
| 
 | inlinevirtual | 
Get output buffer row size.
Definition at line 361 of file dnn_layer_base.h.
| 
 | inlinevirtual | 
Get pointer to optimizer class.
Definition at line 403 of file dnn_layer_base.h.
| 
 | inlinevirtual | 
Get layer type string.
Definition at line 297 of file dnn_layer_base.h.
| 
 | inlinevirtual | 
Get weights.
Definition at line 227 of file dnn_layer_base.h.
| 
 | inlinevirtual | 
Get output buffer - mini batch.
Definition at line 448 of file dnn_layer_base.h.
| 
 | inlinevirtual | 
Get output buffer.
Definition at line 427 of file dnn_layer_base.h.
| 
 | inlinevirtual | 
Get output buffer memory pointer.
Definition at line 441 of file dnn_layer_base.h.
| 
 | inlinevirtual | 
Get output buffer pointer.
Definition at line 434 of file dnn_layer_base.h.
| 
 | inlinevirtual | 
Get output buffer memory column pointer - mini batch.
| [in] | n | Column | 
Definition at line 470 of file dnn_layer_base.h.
| 
 | inlinevirtual | 
Get output buffer memory pointer - mini batch.
Definition at line 462 of file dnn_layer_base.h.
| 
 | inlinevirtual | 
Get output buffer pointer - mini batch.
Definition at line 455 of file dnn_layer_base.h.
| 
 | inlinevirtual | 
Initialize layer.
Initializes input buffer dimensions
Reimplemented in dnn::layer_conv, dnn::layer_dense, dnn::layer_input, dnn::layer_drop, dnn::layer_pool, dnn::layer_cost, dnn::layer_norm, and dnn::layer_act.
Definition at line 97 of file dnn_layer_base.h.
| 
 | inline | 
Initiate weights.
| [in] | fan_in | Number of layer input nodes | 
| [in] | fan_out | Number of layer output nodes | 
| [in] | alg | Algorithm selection | 
| [in] | dist | Random distribution selection [normal|uniform] | 
| [out] | w | weight data | 
Initiate weights random or in a predictive way
Definition at line 572 of file dnn_layer_base.h.
| 
 | inlinevirtual | 
Load layer weight and bias.
| [in] | name | filename | 
| [in] | f | file format | 
Loads weights and bias for the layer in an ASCII or binary format
Definition at line 535 of file dnn_layer_base.h.
| 
 | inlinevirtual | 
Forward propagation.
Reimplemented in dnn::cost_CE_softmax, dnn::cost_CE_sigmoid, dnn::act_softmax, dnn::act_tanh, dnn::cost_CE, dnn::layer_conv, dnn::pool_average, dnn::act_LReLU, dnn::cost_MSE_sigmoid, dnn::act_ReLU, dnn::pool_max, dnn::act_softplus, dnn::layer_norm, dnn::layer_cost, dnn::act_sigmoid, dnn::layer_input, dnn::layer_dense, dnn::layer_pool, and dnn::layer_act.
Definition at line 157 of file dnn_layer_base.h.
| 
 | inlinevirtual | 
Forward propagation - mini batch.
Reimplemented in dnn::cost_CE_softmax, dnn::cost_CE_sigmoid, dnn::act_softmax, dnn::act_tanh, dnn::cost_CE, dnn::layer_conv, dnn::pool_average, dnn::act_LReLU, dnn::cost_MSE_sigmoid, dnn::act_ReLU, dnn::pool_max, dnn::act_softplus, dnn::layer_norm, dnn::layer_cost, dnn::act_sigmoid, dnn::layer_input, dnn::layer_dense, dnn::layer_drop, dnn::layer_pool, and dnn::layer_act.
Definition at line 164 of file dnn_layer_base.h.
| 
 | inlinevirtual | 
Save layer weight and bias.
| [in] | name | filename | 
| [in] | f | file format | 
Saves weights and bias for the layer in an ASCII or binary format
Definition at line 511 of file dnn_layer_base.h.
| 
 | inlinevirtual | 
Set bias.
Definition at line 234 of file dnn_layer_base.h.
| 
 | inlinevirtual | 
Set mini batch size.
Definition at line 318 of file dnn_layer_base.h.
| 
 | inlinevirtual | 
Set input buffer channel/layer size.
Definition at line 382 of file dnn_layer_base.h.
| 
 | inlinevirtual | 
Set input buffer column size.
Definition at line 368 of file dnn_layer_base.h.
| 
 | inlinevirtual | 
Set error output buffer - mini batch.
Definition at line 347 of file dnn_layer_base.h.
| 
 | inlinevirtual | 
Set layer id string.
Definition at line 276 of file dnn_layer_base.h.
| 
 | inlinevirtual | 
Set layer index.
Definition at line 304 of file dnn_layer_base.h.
| 
 | inlinevirtual | 
Set pointer to left layer.
Definition at line 262 of file dnn_layer_base.h.
| 
 | inlinevirtual | 
Set pointer to optimizer class.
Definition at line 396 of file dnn_layer_base.h.
| 
 | inlinevirtual | 
Set phase/state.
Definition at line 255 of file dnn_layer_base.h.
| 
 | inlinevirtual | 
Set pointer to right layer.
Definition at line 269 of file dnn_layer_base.h.
| 
 | inlinevirtual | 
Set input buffer row size.
Definition at line 354 of file dnn_layer_base.h.
| 
 | inlinevirtual | 
Set layer type string.
Definition at line 290 of file dnn_layer_base.h.
| 
 | inlinevirtual | 
Set weights.
Definition at line 241 of file dnn_layer_base.h.
| 
 | inlinevirtual | 
Set output buffer - mini batch.
Definition at line 340 of file dnn_layer_base.h.
| 
 | inlinevirtual | 
Set output buffer.
Definition at line 333 of file dnn_layer_base.h.
Sigmoid function - scalar.
| [in] | x | Scalar input | 
Definition at line 600 of file dnn_layer_base.h.
Sigmoid function - matrix.
| [in] | x | Matrix input | 
Definition at line 608 of file dnn_layer_base.h.
Softmax function - matrix.
| [in] | x | Matrix input | 
Definition at line 616 of file dnn_layer_base.h.
| 
 | inlinevirtual | 
Update layer buffer sizes.
Initializes and clears output buffer dimensions
Reimplemented in dnn::layer_conv, dnn::layer_norm, dnn::layer_drop, dnn::layer_cost, and dnn::layer_pool.
Definition at line 110 of file dnn_layer_base.h.
| 
 | inlinevirtual | 
Parameter update.
Reimplemented in dnn::layer_conv, dnn::layer_norm, and dnn::layer_dense.
Definition at line 178 of file dnn_layer_base.h.
| 
 | friend | 
operator <<
Overloads << operator to print layer info
Definition at line 123 of file dnn_layer_base.h.
| 
 | protected | 
Enable bias.
Definition at line 42 of file dnn_layer_base.h.
| 
 | protected | 
Bias.
Definition at line 60 of file dnn_layer_base.h.
| 
 | protected | 
Error buffer [N_left,N_batch].
Definition at line 58 of file dnn_layer_base.h.
| 
 | protected | 
Layer id string.
Definition at line 38 of file dnn_layer_base.h.
| 
 | protected | 
Layer index [0..].
Definition at line 40 of file dnn_layer_base.h.
| 
 | protected | 
Pointer to previous layer.
Definition at line 35 of file dnn_layer_base.h.
| 
 | protected | 
Mini batch size.
Definition at line 46 of file dnn_layer_base.h.
| 
 | protected | 
Input channels, number of filters.
Definition at line 49 of file dnn_layer_base.h.
| 
 | protected | 
Output channels, number of filters.
Definition at line 52 of file dnn_layer_base.h.
| 
 | protected | 
Input cols.
Definition at line 48 of file dnn_layer_base.h.
| 
 | protected | 
Output cols.
Definition at line 51 of file dnn_layer_base.h.
| 
 | protected | 
Total size left.
Definition at line 53 of file dnn_layer_base.h.
| 
 | protected | 
Total size right.
Definition at line 54 of file dnn_layer_base.h.
| 
 | protected | 
Input rows.
Definition at line 47 of file dnn_layer_base.h.
| 
 | protected | 
Output rows.
Definition at line 50 of file dnn_layer_base.h.
| 
 | protected | 
Pointer to optimizer.
Definition at line 43 of file dnn_layer_base.h.
| 
 | protected | 
Active state/phase.
Definition at line 44 of file dnn_layer_base.h.
| 
 | protected | 
Pointer to next layer.
Definition at line 36 of file dnn_layer_base.h.
| 
 | protected | 
Enable training.
Definition at line 41 of file dnn_layer_base.h.
| 
 | protected | 
Layer type string.
Definition at line 39 of file dnn_layer_base.h.
| 
 | protected | 
Weights.
Definition at line 59 of file dnn_layer_base.h.
| 
 | protected | 
Output buffer mini batch [N_right,N_batch].
Definition at line 56 of file dnn_layer_base.h.
| 
 | protected | 
Output buffer [N_right,1].
Definition at line 57 of file dnn_layer_base.h.
 1.8.13
 1.8.13